做题笔记
做过的有价值一些题得到的教训或经验,一些总结
总结
(按重要性大致排序)
- 代码易懂、简洁性!
- 学会在日常写代码时卡常,多用位运算,养成使用快读的习惯
- 多做总结
- 多做思维题,如
DP
、贪心
等等。
比赛
严禁使用 a[++r]=r++
等毒瘤代码!!!会为的!
注意时间分配,除非其他题都做完了,否则一道题的时间禁止超过 1.5h
记得考虑 puts("-1")
、 n=1
等等特殊情况
考试最后检查:
- 文件读写
- 文件夹、文件名
- 数组是否开小
- 大致浏览一遍,看看是否有错误
教训
CodeForces Round #775 E 原来函数没有返回值会 RE 。。学到了 最后答案记得取模
AT3913 XOR Tree
min
打成 max
了!下次注意
P3806 【模板】点分治1
再来打一遍。点分治的容斥操作,对于一个节点,它所支配的子树统计答案会有重复,因此要减去它所有儿子统计的答案。虽然没错,但还是提醒自己:容斥时要容斥儿子,不能是儿子所在的根。
CF337D Book of Evil
树上 DP 。 算是比较套路吧。一个换根 DP,先把子树的贡献算上,再把全局的贡献算上。注意这里求最大次大的原因是下传标记,所以只能搞最大值。
P3285 [SCOI2014]方伯伯的OJ
关于动态开店 Treap 。1.关于本题,所有有修改的地方全部需要更新2号平衡树,包括插入、删除、修改。 2.所有地方全部都要 Up
! 3.动态开点 Treap,思路是每一个点表示一个区间,在所有需要的地方分裂一下。但这里因为之前平衡树旋转可能会导致这个节点会有子节点,所以分裂时要分类讨论一下,如果有子节点,因为不会有重复,所以在两个节点之间插入。记得 `Up~ !所以,完满结束。
P3245 [HNOI2016]大数
这是一个悲伤的故事。莫队排序打错会 RE?!
Ynoi2017 由乃打扑克
数组名打错了!!!!!!
P3863 序列
做出一个结论(比如什么不需要)时要慎重。看到题解要思考是否有必要
线段树模板 分块 分块题目。函数没返回!为了!分块是每一次修改操作都要把整一个块修改了。
CF750E New Year and Old Subsequence
矩阵构造细节注意。 矩阵相乘,如果有一个是空的,记得返回另一个。
GSS4 - Can you answer these queries IV
初始化。
CF786B Legacy
优先队列比较符号相反!!!!!!!!
2022-01-15 CF740 T3
看到一道题想做法时不要理所当然,可能有更为简洁好想的做法。
2022-01-15 CF740 T4
一个 DP
,转移时可以换一下方向,包括从哪些数转移过来、能转移到那些数、设的状态等。
2022-01-15 ABC T4
两数相乘可能爆 int
。
P3806 【模板】点分治1
1.这道题中容斥时要直接儿子,不能是新的重心 2.容斥记得分正负
P2472 蜥蜴
1.字符串读入时用 scanf("%s",&c[i][1]);
2.调试时不要理所当然.
P3376 【模板】网络最大流
网络流建图时一条边权 w
, 一条边权 0
。
CF F. Interesting Sections
头一次发现原来可以那么sao。。。1.超级卡常 2.卡时间 3.卡空间 4扫描线内部记得处理权值时要处理矩阵长度而不仅是宽度 5.以后非必要时只有要用到的变量开long long
6.快读类型记得加long long
7.线段树上传、下传时细节注意
P3313 旅行
关于树链剖分与动态开点线段树。1.学了一个新写法,用 &
符。2.关于修改时的根节点
P3957 跳房子
关于单调队列的注意事项。
1.每次记得初始化,包括函数内,值要够大 2.单调队列每加入一个值,都要使其单调
11-18 T4
多重背包打挂了!为了。。以后多重背包优化记得是 $ 20~2n $
11-17 T1
二分打挂了
【模板】线段树 2
没有处理零的情况!!!以后绝对不打大于号了,要不然就打 !=
11-16 t1
得出一个结论后要多思考一下,验证正确性
11-16 t2
注意一些边界情况。多种情况记得选最优
11-16 t4
直接拷了
11-15 t1
注意算法时间复杂度!!!记得卡常!!!
11-13 t2
记得考虑多种情况。多造一些样例,比赛结束前重新看题考虑是否考虑到所有情况
11-12 t3
惨痛回忆。数组开小了!
BBCC 第一题
哈哈哈没开快读。。。
CSP2021 T1
变量名打错了!!!痛不欲生F**k
CSP2021 T2
磕了太久,最后才发现算法是错误的,无可饶恕。打比赛时必须要分配好时间,认识到自己的问题
CSP2021 T3
当时一直在磕T2考完才发现是一道大水题。。