05 2022 档案
摘要:一 原始数据处理 1.输入数据得到a[1]~a[n],复制扩展a[n+1]~a[2*n],以便处理不同点为起点出发。 cin>>n>>m; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); a[i+n]=a[i]; } 2.计算前缀和 sum[1]=a[1]; f
阅读全文
摘要:一道又臭又长的模拟题目。。。。。 主要有几个小技巧可以帮大家省一省代码: 1.scanf("%d.%d",&b,&c); 这里是定了一个格式如果不按格式来就不输入后面的内容 程序中用来分离数字方便计算 2.sscanf(a,"%d.%d",&a,&b); 这是从a字符串中读入a和b他反回的是读入了几
阅读全文
摘要:我有新思路了,链接:https://www.cnblogs.com/wjk53233/p/16533752.html 我有新思路了,链接:https://www.cnblogs.com/wjk53233/p/16533752.html 我有新思路了,链接:https://www.cnblogs.co
阅读全文
摘要:高精度加 1 // C = A + B, A >= 0, B >= 0 2 vector<int> add(vector<int> &A, vector<int> &B) 3 { 4 if (A.size() < B.size()) return add(B, A); 5 6 vector<int>
阅读全文
摘要:这道题目的思路就是二分主要说一下二分的check函数 check函数思路: 1.把a数组遍历一遍将所有的数除以已给的t商都加给num 2.把num与m作比较num>=m return 1; else return 0; 1 unsigned long long check(unsigned long
阅读全文
摘要:这道题目的主要思路: 1.开struct (一)因为题目要求老师让跳的低的小朋友先摘而且最后还要按着题目给的顺序输出(前面的那个要求需要用sort但后面需要按原顺序输出但不能sort回去)十分坑爹所以要用strcut (二)这里如果用一个数组 来纪录 这个数是第几个小盆友,就会因为要用a来做下标 得
阅读全文
摘要:这道题目还是难在check函数。 check思路:遍历数组,如果目前两点距离小于k(带进去的数)就搬走(cnt也就是需要搬几块石头++)否则更新目前位置📍。 1 int check(int k) 2 { 3 int s=0,cnt=0; 4 for(int i=1;i<=m;i++) 5 { 6
阅读全文
摘要:这道题目是二分每一段的最大值的最小值(类似于贪)。主要在于check函数。 (check)思路: 输入一个每一段的最小值 然后看能不能实现。 接下来主程序可以套模板啦! 程序: 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int
阅读全文
摘要:今天老师的代码里出了 故此纪念。 更新: colourful egg 光看题目:天书 听老师讲:1+1=2
阅读全文
摘要:这道题目主要是dfs+记忆化搜索。 dfs就不说了,这道题的dfs只有mp需做一下处理其余没有区别。 重点是记忆化搜索:坑 1.需要两个vector来记录路径,因为只用一个的话会被盖,最后只剩下0和0还有0。 2.巨坑:起点可能是墙!!!!!!!!!!!!!!!!!!! 我也只是默默的掏出了板砖而已
阅读全文
摘要:这道题目与抓牛类似,可以用bfs来解决。 细节: 1.记录step 1 np.step=op.step+1; 2.扩展 这里不同于其他题目,但只要按题意来写就不会有问题。 👇 (一) 1 np.x=op.x+op.y; 2 np.y=op.y; (二) 1 np.x=op.x; 2 np.y=op
阅读全文
摘要:这道题目是二分舞台大小,为什么能用二分呢?因为如果mid成立 则mid~r都成立,如果mid不成立l~mid就都不成立,也就是严格单调,所以可以使用二分快速找到k。 check函数的思路: 实现:在舞台为k的情况下表演时间能否满足tmax。 思路:1.先给舞台上放k头牛按表演时间排序 2.然后将余下
阅读全文
摘要:此题又臭又长,意为:拿n个扑克牌搭个最大三角形以此类推,问能搭多少个? 这题为难亿点的二分 主要是高度二分,用目前扑克牌数当右边界,1当左边界。这里有个细节,r=扑克牌数,l=1,因为为了保证有答案所以这么写。然后就是模板了。 int l = -1,r =N; while(l+1!=r) { m=(
阅读全文
摘要:这道题目是经典二分只是二分中对于mid的判断变了,可以直接套模板。 1 int l = -1,r =N; 2 while(l+1!=r) 3 { 4 m=(l+r)>>1; 5 if(check(m)) l=m; 6 else r=m; 7 } 8 return l or r; 上代码: 1 #in
阅读全文