易错点总结(考前)

trick

图论

  1. 求一颗树的连通块个数相当于求点-边的数量。ABC173F

  2. 选一个点,要求距离最大的点最小,选的是直径的中点,选 k 个就是直径上找 k 个(树网的核)。

  3. 重心到所有点的距离之和最小,与边权无关。

  4. 树上的区间操作考虑转为:dfs 序,bfs 序,欧拉序等,树上启发式合并也可以考虑。

  5. 传递闭包可以用 bitset 优化 floyd。

  6. 判断树上的两条路径是否相交,只用看两条路径的 lca 是否有一个 lca 在另一条路径上。

  7. 树上二分图最大匹配,贪心的知道:叶子结点与父节点匹配一定最优。

  8. 对于图中有关异或、奇偶的题,考虑建分层图,如果边是零就在本层建边,是一就向对层建边,最后统计在一层的点。

dp

  1. 树上 dp 要用 子树大小来缩小枚举范围,以达到优化时间复杂度的目的(小心写成 O(n3))。

  2. 有些 dp 转移可以变成偏序问题,可用数据结构较快的转移。

  3. 有些状压 dp 可以先预处理排除掉不合法的状态,这样枚举状态时会减少不少状态。

数据结构

  1. 对于要求求特定计算法则下的前 k 大区间,考虑用优先队列,每次取出最大的区间,并把区间分成两端再次放入优先队列中。(超级钢琴)

数学

  1. n=dnφ(d)

  2. Cnm1mod2,转化为:n&m=m

其他

  1. 对于数据的分析(修改与查询要适配):

比如莫对维护 mex,莫对的修改为 nn,查询为 n

如用 set 维护 mex,修改与查询的复杂度都为 logn,无法通过。

如果用分块维护 mex,修改为 O(1),查询为 n 可以通过。

  1. 动态中位数用对顶堆。

  2. 对于二进制加减考虑延时进位,每次相加不进位,最后再从头扫一遍进位。

进位可以这么写:

void jw(int id,int pos)
{
   a[id][pos-1]+=(a[id][pos]-(a[id][pos]&1))>>1;
   a[id][pos]&=1;
}
  1. 回文串的循环节也是回文串

代码细节

  1. 不开 long long 见祖宗。

  2. 提交前一定检查数组是否开够,不要 const N 后就全部都开 N

  3. freopen 写对了吗,一定要带文件测试,也可以直接用文件读入调试。

  4. 如果写快读,快读写对了吗,快读是否适配读入范围。

  5. 不太熟悉的运算优先级就打括号,一定不错(== 先于 &)。

  6. 选择性压行,一般不要压行,有些写了很多次的模板可以适当压行。

  7. 检查空间大小。

  8. 一定要在 linux 下编译一遍代码。

  9. 多测要清空,时间富裕可以 memset,不然用多少清.

  10. 字符串处理时想清楚是 -'0',还是 -'a'(是数字还是字母)。

  11. define int long long 尽量不用,如果实在不清楚也可以开。

  12. 并查集的两个优化都用时间才是常数级别,只用一个是 log

  13. 注意特判边界或特殊情况。

  14. 些暴力就不要想一些歪门的优化,这样增加代码量不说大概率也没用,还有可能写错。

  15. 平衡树的空间一定要多开点,询问要加点。

考试策略

  1. 10 分钟通读全题,20分钟细读全题(手算样例,不要读错题),思考一眼分并记录下来。

  2. 20 分钟思考 T1 正解,如果思考出来:40 分钟正解代码,写拍子。

如果没有思考出来,先思考 T2 10 分钟(可能 T2 比 T1 简单),写 T2 暴力(30 分钟)/写正解(1 小时)。

  1. 写 T4 ,T3 暴力,分尽量多(1 小时)。

  2. T1 未作出来,写暴力,然后思考正解(T2 同理)。

  3. 如果遇到大模拟,先当 300 分满分做,如果有时间考虑写部分分(如果部分分很好写可以直接写(代码 70 行内))。

考试心态

  1. 一定不要上头,如果已经死磕了 30 分钟以上,就一定写暴力,就算后面想出来了还可以对拍,至少不在此题爆零。

  2. 写到一半做法假了,一定不要慌,把代码复制到新文件,不要删(可能有用),心里要想:至少在考试时发现而非考后,至少有暴力分。

  3. 不会就写暴力!不会就写暴力!不会就写暴力!暴力写了总不错。

posted @   houguo  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示