2020 ICPC 南京¶
排名 | 当场过题数 | 至今过题数 | 总题数 |
---|---|---|---|
7/549 | 7 | 10 | 13 |
A¶
upsolved by
题意¶
题解¶
B¶
upsolved by
题意¶
题解¶
C¶
upsolved by JJLeo
题意¶
二维平面上有
题解¶
先按横坐标排序,显然此时必然是选择一个区间用横坐标吃,然后前缀后缀没选的用纵坐标吃。考虑当选择区间的左端点为
前缀后缀的纵坐标最大最小值可以用单调栈+线段树维护,左端点向右向右移动时相当于把左边的一个元素移动到最右侧,用单调栈更新区间即可,时间复杂度为
需要注意的是当横(纵)坐标的最大最小值分别上述
D¶
upsolved by JJLeo
题意¶
给出一个
题解¶
先随便求出一个生成树,如果符合条件直接结束。
否则可以证明最多存在一个点的度超过
可以发现,每次相当于合并两个子树,需要使用并查集来完成,如果最终所有边都用过了还是不满足条件,那么必然是不存在解的。
另外,有可能根节点合法了,但是另一个节点度数太大了,可以证明因为当根节点恰好满足条件时就结束,如果此时有一个点的度数过大,那么它必然与根节点相连,所以我们只需要删边时需要注意一下:如果非树边的两个节点一个与根相连一个不与根相连,则删掉前者与根相连的边;如果两个节点都与根相连,则选择度数小的那一个。
可以发现,当
E¶
solved by Bazoka13
题意¶
题解¶
F¶
solved by 2sozx JJLeo
题意¶
求
题解¶
导数单调,先减后增,二分即可。
G¶
upsolved by
题意¶
题解¶
H¶
solved by 2sozx Bazoka13
题意¶
题解¶
我们取其中两行考虑是否有情况可以快速统计,两列同理
显然两行最多只存在
再仔细考虑这9种排列,显然
因此对于
I¶
upsolved by JJLeo
题意¶
二维平面上给出
题解¶
可以证明最优方案一定是沿着线段端点的折线走,直接暴力处理任意两点间是否合法,然后 dfs 即可,需要注意如果一条线段端点在边界处,那么不能卡着它向上走,要特判掉。
J¶
solved by 2sozx JJLeo
题意¶
- 区间取
。 - 选取一个区间里面的石子,再额外加一堆有
个石子的石子堆。用上述这些石子堆开始玩 nim 游戏,问先手第一次操作有多少种不同的方案保证他能必胜。
(
题解¶
Warning
这个吉司机线段树是假的,而且不好写,虽然能过本题,但复杂度未知。
nim 游戏先手必须保证操作后异或和为
题目转化为,区间取
吉司机线段树要维护四个量,最大值,次大值,最小值,最大值的个数,up 的时候直接来就可以,cover 的时候分为三种情况:
- 最大值小于等于要取
的值,直接全部覆盖,并终止向下递归。 - 次大值小于等于要取
的值,因为有最大值的数量,也可以进行修改,并终止向下递归。 - 否则不做修改,继续向下递归。
另外,递归过程如果最小值大于等于要取
本题额外维护的量也应该在 cover、up 时进行对应的更改。
K¶
solved by 2sozx JJLeo
题意¶
求一个
题解¶
如果
否则,如果
L¶
solved by 2sozx JJLeo
题意¶
数轴上有红点和蓝点,你需要找到一个位置,使得尽可能多的红点满足到该位置的距离小于任意一个蓝点到该距离的位置。
题解¶
等价于求最大连续红点的数量,如果蓝红重合,则红点作废。
M¶
solved by JJLeo
题意¶
给出一颗
题解¶
树形背包 dp,
记录¶
0min:常规开题,MJX看过南京的榜感觉很自闭,CSK 码 E
12min:ZYF 冲 K,AC,冲L
20min:ZYF AC,CSK继续码E
33min:CSK AC,ZYF 暴力莽跑F
39min:ZYF WA F,二分导数后AC,冲M
72min:ZYF AC,MJX发现H可推结论打表,CSK打表,MJX冲J
176min:MJX 离谱了两次后AC,MJX冲J,寄
210min:MJX现场教ZYF segment tree beats,ZYF AC
till end:CSK疯狂写A,ZYF疯狂写C,MJX疯狂挂机
after end:ZYF if判断写错了,寄
总结¶
- MJX 玛丽不足,自闭
- ZYF 玛丽也不足,也自闭