竞赛笔记
未读2024/1/17广度优先搜索 BFS 学习笔记 - XiaoQuQu深度优先搜索 DFS 学习笔记 - XiaoQuQu
123456789101112131415161718192021222324252627282930313233343536//P2392 kkksc03考前临时抱佛脚#include<bits/stdc++.h>using namespace std;int a[5000][10000];int sum,ans,lft,rght;int s[5000];void dfs(int x,int dep)//x表示第几个科目,dep表示第几题{ if(dep>s[x]) { sum=min(sum,max(lft,rght)); return; } lft+=a[x][dep];//左脑尝试 dfs(x,dep+1); lft-=a[x][dep];//回溯 rght+=a[x][dep];//右脑 dfs(x,dep+1); rght-=a[x][dep];//回溯 } int m ...
竞赛笔记
未读
123456789101112131415161718192021222324252627282930313233343536373839//n皇后问题#include<bits/stdc++.h>using namespace std;int a[10001];//保存皇后的位置int b[10001],c[10001],d[10001];//标记同列和对角线int sum;//方案总数void print(){ sum++; for(int i=1;i<=8;i++) { cout<<a[i]; if(i!=8) cout<<" "; else cout<<endl; }} void s(int i){ for(int j=1;j<=8;j++)//试探八个位置 { if(!b[j] && !c[i+j] && !d[i-j+7])//下标不为负,+7 { a[i]=j; b[j]= ...
竞赛笔记
未读2024/1/15
123456789101112131415161718192021222324252627282930313233//Luogu P1706 全排列问题//By OIWIKI 2024/1/15#include <iomanip>#include <iostream>using namespace std;int n;bool vis[50]; // 访问标记数组int a[50]; // 排列数组,按顺序储存当前搜索结果void dfs(int step) { if (step == n + 1) { // 边界 for (int i = 1; i <= n; i++) { cout << setw(5) << a[i]; // 保留5个场宽 } cout << endl; return; } for (int i = 1; i <= n; i++) { ...
竞赛笔记
未读2023/12/23
竞赛笔记
未读2023/12/121234567891011121314151617// P1192 台阶问题#include<bits/stdc++.h>using namespace std;int mod=1e5+3;int n,k,f[1000001];int main(){ cin>>n>>k; f[0]=f[1]=1;//递推边界 for(int i=2;i<=n;i++) for(int j=1;j<=k;j++) if(i>=j)//当楼梯数大于迈步数 f[i]=(f[i]+f[i-j])%mod; cout<<f[n]<<endl;}
竞赛笔记
未读2023/12/11
2023/12/8 个人笔记主题:GESP编程能力等级认证标四级(复习要点)考试大纲
知识点复习
1.形参和实参定义:
形参:形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参:实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
网上很多大佬都是这么讲的,认为举个例子更容易理解:
假设定义了这样一个函数
123int f(int x){ return 0;}
然后在主函数中这么调用它
123456int main(){ int n; f(n); return 0;}
那么int f(int x)中的 x x x就是形参(在函数中定义,并只能在此函数中使用的参数)
主函数中f(n)的 n n n就是实参(将数据传入函数中的参数)
作用域
作用域,顾名思义,就是变量或常量的作用范围(可使用范围)
1234567for(int i = 1; i <= n; i++) cout << k;//这句话的作用域就是当前行,仅在当前行执行for(int i = 1; i & ...
竞赛笔记
未读2023/12/8GESP C++等级测试四级2023 年 6 ⽉
希尔排序(递减增量排序)
123456789101112131415template <typename T>void shell_sort(T array[], int length) { int h = 1; while (h < length / 3) { h = 3 * h + 1; } while (h >= 1) { for (int i = h; i < length; i++) { for (int j = i; j >= h && array[j] < array[j - h]; j -= h) { std::swap(array[j], array[j - h]); } } h = h / 3; }}
归并排序
代码1(数组)
1234567891011 ...
竞赛笔记
未读2023/12/6GESP C++等级测试四级2023 年 9 ⽉
2023.11.21初一欢乐周赛总叙:思路差不多懂,但就是不会写
P1165 日志分析题目链接:P1165
考点:模拟,线性数据结构,栈
难点:我们设a[i]为栈中从下到上的i个元素中的最大值,当我们加入一个新元素x时,t++,a[t]=max(a[t-1],x)。那么在出栈时只要输出a[t-1],在查找时只要输出a[t]
比赛时自己的思路:插入、删除、查询栈
结果:$ {\color{red} Unaccept}$
正确代码:
123456789101112131415161718192021222324252627282930313233343536373839404142#include<bits/stdc++.h>using namespace std;int s[20000000],a[20000000],top,k;int n,t,x;void cx(){ if(top==0) { cout<<0<<'\n'; return; } cout<<a[k]<& ...