典题档案(2020 Winter)
- 继续填坑,将做过的典题(特别是出错者)列下来,并附链接,以铭其咎。
Upd:2020.12 上海站结束,把近期笔记同步上传到博客
文章目录
天梯赛L3-007 天梯地图
PTA链接
最后存的两条路径,一开始装到了string里,本想方便判断,但忘了点权可以是多位数,输出出错。
C2r5 B (CF1321D)
CF链接
原思路:反向建图bfs,得出各点的father集,再找给出的路径上点的父亲中有下一个点且还有其他点则maxx++若没有则minn++maxx++
还不清楚错在哪里
AC思路:对图的处理不变,在统计时改为统计最短距离,如下
int maxx = 0, minn = 0;
for(int i = 1; i < k; i++){
if(d[tar[i]] - 1 < d[tar[i + 1]]){
maxx++, minn++;
}
else if(cnt[tar[i]] > 1) maxx++;
}
Gym - 101142C CodeCoder and TopForces
VJ
首先在a组我大意了啊,题意没搞清,正确题意是在符合规则的一条链上的人都可以打败。
- 思路1:按cc rating排序建图,再按tf rating排序建图,再按后者的顺序进行dfs,只要找到点即可cnt++,最后按输入顺序输出。
一篇题解:(https://www.cnblogs.com/letlifestop/p/10653242.html) - 思路2:使用树状数组
(挖坑)
天梯赛L3-021 神坛
PTA
思路:极角排序:先按照象限排序,再按照叉积排序
枚举每个点,按照这个点对其他点极角排序,相邻两个点构成当前情况下的最小三角形面积
当然,面相这么符合随机化方法的题不多了,可以各种随机化
天梯赛L2-022 重排链表
PTA
纯模拟…O(n)实现即可,不要想复杂
C1R7 - CF980B Marlin
VJ
比赛时的错误想法:从非对称、顺序排列的角度开始,放出
####
#..#
的形状,不满一行则直接排在第一行,像这样
.........
.###.....
.........
.........
补题时经升神提醒,用dfs验证,这种情况是错误的。
AC的两种做法:
- 一、容易证明,按对称的思路做是肯定正确的(当时在最后半重构成这种思路,险过)
- 二、仍然保持最初的思路,但改一个地方,将错误的那种情况改成在中间放置,而这种情况只有m=3时才会出现,因此只需要特判m=3的情况即可:
....###....
亦可通过。总结:多考虑错误的情况,发现疑点可以快撸一份暴力,看看是不是有问题。当然,如果在思路层面尽早发现”更正确“的做法更好。