找回密码
 立即注册
首页 业界区 安全 做题小结1.23-1.26

做题小结1.23-1.26

鞭氅 7 天前
https://codeforces.com/contest/1904/problem/B
1.png

2.png

这题目意思有点逆天 意思是说你可以设置你的初试分数为ai 然后大鱼吃小鱼 输出你设置为ai时吃到的最多
鱼数量 每个i都要输出
然后这是一个双指针的题目 也是一个二分的题目  考察基本功
我个人认为我现阶段就是基础不牢 所以对于这种橙题 我是很喜欢补的很透彻的 橙怎么了
场上卡你的还管什么颜色
先介绍双指针写法
结构体排序就不说了
很显然还是经典写法 卡住一边让r跑的写法  这个一边就是指我们for循环卡住i
  1. for (int i = 1; i <= n; i++) {
  2.                 if (r>i) {
  3.                         ans[a[i].index] = r - 1;
  4.                         continue;
  5.                 }
  6.                 if(r!=i)
  7.                 tot += a[i].num;
  8.                 r=i;
  9.                 while (tot >= a[r + 1].num&&r<n) {
  10.                         tot += a[r + 1].num;
  11.                         r++;
  12.                 }
  13.                 ans[a[i].index] = r -1;               
  14.         }
复制代码
很好的一题
https://codeforces.com/contest/1904/problem/C
3.png

重新看这个题 一下子就想起来了 所以就秒了 不过这个题还是很有价值的 就是
k=2的放置 我们二分一个最接近的数字 假设Ai 二分出来了Ak 那么我们二分用的lowerbound默认>=
还有可能Ak-1也是很接近的 所以这是一个很容易漏的点 我翻了好几次这种毛病了
切记!
https://codeforces.com/contest/1904/problem/A
4.png

重新做还是一愣一愣的 看了代码才知道咋写
没错 set还可以放pair!!!!很好的一道题
[code]        sets1;        sets2;//学到了 set可以放pair        for (int i = 0; i
您需要登录后才可以回帖 登录 | 立即注册