2020-team12-039
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
[/wiki/2020-team12 返回]
[[Image(2021-0320standings.png, 1000px)]]
[[Image(2021-0320submissions1.png, 1000px)]]
[[Image(2021-0320submissions2.png, 1000px)]]
== 问题 ==
前期节奏垮,全程就很难提的起状态。 最后的J疑似被卡常实属可惜。
== 题解 ==
简版题解:https://codeforces.com/blog/entry/63729
A: 签到。
B: 贪心。设f(p)为使得n*(n+1)/2>=p的最小n,则最优策略应该是让一只怪死在第f(p)秒,后一只怪死在第f(p+q)秒。
需要做先杀死哪只怪的决策,然后进行比较;比较后贪心输出策略。在两种决策答案一样时需要特殊处理。
C: 又是“题目要点在关键字”系列。首先行和列可以单独考虑,可以发现所有车构成的矩形会不断缩小,一个棋子一旦到了边界就再也不会扩展矩形。
考虑把二维拆成两个一维,把每一步所有车的移动看成是棋盘边界移动,每次移动一步就把会到边界上的棋子记录并修改,在维护两条边界与实际值偏差多少(右移k或左移k,且有边界);询问时直接输出棋子横纵坐标与实际值偏差的和即可。
至于碰撞,正是由于所有车起始位置,两个车会相撞当且仅当他们同时触碰到同样的两维边界(也即我们的边界的四个角)。对四个角记录有多少车撞到,输出时讨论几个角有没有被缩成一起并输出排列数即可。注意可能有同时撞到两个相邻角(因为另一维已经合并了)的情况,需要特判,每个车只记撞到一个角。
D: 签到,纸笔几何题
E: 签到,找规律后高精度乘和辗转相除法。板子得整理了,szb现写不很熟练。
F: 较易题,处理好这个奇葩蜂巢然后bfs即可....但是ctc数组开小到最后才发现
G: 待补
H: SA,szb
I:签到
J: 待szb写,被卡常卡的十分痛苦。
K: 待补
L:待补
[/wiki/2020-team12 返回]



问题
前期节奏垮,全程就很难提的起状态。 最后的J疑似被卡常实属可惜。
题解
简版题解:https://codeforces.com/blog/entry/63729
A: 签到。
B: 贪心。设f(p)为使得n*(n+1)/2>=p的最小n,则最优策略应该是让一只怪死在第f(p)秒,后一只怪死在第f(p+q)秒。
需要做先杀死哪只怪的决策,然后进行比较;比较后贪心输出策略。在两种决策答案一样时需要特殊处理。
C: 又是“题目要点在关键字”系列。首先行和列可以单独考虑,可以发现所有车构成的矩形会不断缩小,一个棋子一旦到了边界就再也不会扩展矩形。
考虑把二维拆成两个一维,把每一步所有车的移动看成是棋盘边界移动,每次移动一步就把会到边界上的棋子记录并修改,在维护两条边界与实际值偏差多少(右移k或左移k,且有边界);询问时直接输出棋子横纵坐标与实际值偏差的和即可。
至于碰撞,正是由于所有车起始位置,两个车会相撞当且仅当他们同时触碰到同样的两维边界(也即我们的边界的四个角)。对四个角记录有多少车撞到,输出时讨论几个角有没有被缩成一起并输出排列数即可。注意可能有同时撞到两个相邻角(因为另一维已经合并了)的情况,需要特判,每个车只记撞到一个角。
D: 签到,纸笔几何题
E: 签到,找规律后高精度乘和辗转相除法。板子得整理了,szb现写不很熟练。
F: 较易题,处理好这个奇葩蜂巢然后bfs即可....但是ctc数组开小到最后才发现
G: 待补
H: SA,szb
I:签到
J: 待szb写,被卡常卡的十分痛苦。
K: 待补
L:待补
附加文件
- 2021-0320standings.png by Wallnut2020
- 2021-0320submissions2.png by Wallnut2020
- 2021-0320submissions1.png by Wallnut2020