无敌飞舞Hanggoash的总结贴

无敌飞舞Hanggoash的总结贴

注意点

  1. 一定要学会根据数据范围推复杂度。
  2. 卡题15分钟就先跳(指 202410-11月时常不能切掉div2c)
  3. 切忌倒序开题,现在暂时没有那个本事。(CF984 rk9600)
  4. 少看榜 (至少目前为止不需要)
  5. if else 一定要审清逻辑,不偷懒。
  6. 交互题最好就只写 cin cout,endl本身就具有刷新缓冲区的作用,注意每次输出都要刷新缓冲区(包括输出答案)。
  7. 当整数范围过大时还要调用sqrt的话,应该使用sqrtl或者是手写。
  8. 用了 ios::sync_with_stdio(0) 就不要再用任何除了 cin cout 之外的io方式了!!!(已经是第三次犯蠢了)
  9. 超过三十分钟没有一个明确思路就直接跳,切忌恋战。
  10. 序列上的贪心题,一般注意 \(n=1\) 或者 \(n=2\) 或者 \(k=1\) 的边界情况。
  11. set 和 map 都有比较巨大的常数。
  12. map 和 set 都需要定义严格弱序的比较符号,不能两个逻辑上不同的对象在比较法则下显得相同
  13. 多变量的式子经常通过移项实现形式上的统一
  14. floyd 的转移是无环的,dp转移存在环的时候要使用bfs或者是最短路

杂 trick

  1. 序列中选择任意数加减 \(a,b\) 等价于加减 \(gcd(a,b)\)
  2. 可以通过 (a+b-1)/b 来进行不涉及浮点数的上取整,下取整是 a/b
  3. vscode 环境中通过 ctrl + l 可以快速选择整行
  4. 注意值域区间 \(+-1\) 具有的rank不变性
  5. 期望dp把相同项移到一边后再dp
  6. 区间修改+最小操作次数问题,往差分角度考虑 O(nlogn)。
  7. 中位数问题通常向 \(+1,-1\) 和 二分答案 上面转化。
  8. 多次排序问题可以向 \(01\) 串的排序 和 二分答案 上面转化。
posted @ 2024-12-11 11:34  Hanggoash  阅读(20)  评论(0)    收藏  举报
动态线条
动态线条end