- 博客(10)
- 收藏
- 关注
原创 2022-02-13复习总结
今天复习了前缀和的应用和存图1.前缀和:判断一段序列从下标 l 到 r 的和。按照代码for(int i=l;i<=r;i++) sum+=a[i];这样如果有多组数据可能会超时,所以要开数组sum[ ].代码如下for(inr i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++){ sum[i]+=sum[i-1]+a[i];}如果要计算 l 到 r 的和即smu[r]-sum[l]。2.存图
2022-02-13 17:00:15
171
原创 2022-02-12复习总结
1、答案在一个区间内(一般情况下,区间会很大,暴力超时)2、直接搜索不好搜,但是容易判断一个答案可行不可行3、该区间对题目具有单调性,即:在区间中的值越大或越小,题目中的某个量对应增加或减少。...
2022-02-12 17:00:51
329
原创 2022-02-11复习总结
今天重点复习了二分查找,收获颇多。注意要先将数组排成有序数列:sort(a+1,a+1+n)1.二分查找分为向左和向右查找,如果是向右的话,会找到第一次出现的位置,向右的话会找到最后一次出现的位置。2,向左查找:while(l<r){ int mid=l+r>>1; if(a[mid]>=x) r=mid; else l=mid+1;}3.向右查找:while(l<r){ int mid=l+r+1>>1; if(a[mid]
2022-02-11 17:00:28
408
原创 2022-02-10复习总结
1.今天大概的复习了一下二分查找和背包dp————先说说二分查找在写二分查找是首先要注意的是循环的条件和查找的方向相对应。当时使用循环条件为while(left<=right)时用的是左闭右闭查找时都要将mid给去掉int search(int nums[], int size, int target) //nums是数组,size是数组的大小,target是需要查找的值{ int left = 0; int right = size - 1; // 定义了ta..
2022-02-10 17:00:44
228
原创 对于一些细节《长期修改》
1.int c[20000][20000]; //全局数组能开到20000*200002.int b[100][100]; // 函数中二维数组最大能开100*1003.char a[4*518028]; // 函数中的char数组最大能开4*5180284.int b1[500000]; // int最大能开到5180285.static int c[20000][20000]; //static能开到10^7*10^7,注意 static和 全局开的是同一块空间...
2021-08-10 21:57:07
103
原创 最小生成数总结<2021.August.2.Monday><第五篇>
引子:类似贪心和搜索1.理解:整个图所有的点连接,且连接的路径上的权值是最小的。算法分析 1.prim算法<1>理解:看做两个集合,一个集合没有被遍历到,另一个集合被遍历到了。运用贪心的思想将最小值逐个入队。<2>实现:创建数组vis用来表示是否入队。dis数组用来表示某个点到最小生成树的距离。f[n][m]二维数组用来表示n到m的距离。刚开始可以选择任意一点作为遍历的起点。附上代码tot=0;vis[s]=true//s已入队for(in...
2021-08-03 19:23:30
107
原创 结构体和KMP算法总结(2021.June.31.saturday)<第二篇>
引子:适合多个数据同时考虑一 1.结构体模板struct 名称1{ int 名称2; string 名称3; char 名称4; ........} 2.如何排序(结构体很大的作用)bool cmp(名称1 a,名称1 b){ return a.名称(2~n)<b.名称(2~n);} 3....
2021-08-02 18:59:19
144
原创 并查集总结<2021.August.2.Monday><第四篇>
引子:用于数据统计与查找1.理解:将各个元素分成多个集合并用每个集合的其中一个且唯一一个元素去表达它所在的集合。2.如何表达:我们用fa[]数组去表达一个集和。对于fa[x]=y,我们理解为x为一个任意数,y为x这个元素所在集合的表达元素。对于与x在相同集合的任意元素的fa[与x在相同集合的任意元素]=y。注意:对于集合的表达元素有,它所在集合的表达元素就是自己即fa[y]=y3 上代码int find(int x,)//将x元素所在的集合代表元素{ if(fa[x]==.
2021-08-02 12:14:30
122
原创 深搜和广搜总结(2021.June.30.Friday)<博客第一篇>
引子:广泛搜索且盲目。深搜:代码如下(dfs)void dfs(int u){ vis[u]=true; for(int i=head[u];i;i=next[i]) { int v=ver[i]; if(vis[v]) continue; dfs(v); }} 解释:任选一条边走下去,执行递归,直至回溯到点u后,再考虑走其他的边。广搜:代码如下(bfs)void bfs(){ memset(d,0,s...
2021-07-31 19:10:27
193
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅