时间安排
7:40 - 8:15
看题,A 感觉能做,B 题能打暴力,C D 没想法
8:15 - 9:00
打表找规律过掉了 A,手造了几组极限数据并验证没发现问题。
9:00 - 9:40
打 B 的暴力,想 C。
9:40 - 10:30
打 D 的暴力,思考 B 的链部分分。
10:30 - 11:00
写 B 的链部分分。
10:30 - 11:00
写 C 暴力,想 C D 高档分。
11:00 - 11.40
罚坐,检查了 freopen 和子文件夹,想 C D。
总结反思
- 时间充裕的情况下可以把代码从头到尾通读一遍,避免出现今天 B 暴力写挂的情况。
- 构造题不咋会。
- B 题套路没掌握。
题解
A
简单题,打表很容易发现规律。
B
使用时间倒流法,将删边变为加边,用并查集维护。一个点能到的最远点必定是直径的两个端点之一,合并的时候分讨维护一下即可。
C
重要性质:个数与上另一个数时只有低于它最高位的位数才会被影响,所以从0 - 62 枚举最高位就可以保证无后效性。每次枚举到一个位的时候将所有最高位为这个数的数字加起来,若这个和与原和符号相同,说明将这个位置设成 1 是有意义的,否则是没有意义的。如果原和是负数,直接变成正数避免特判。
D
神仙题。推导过程繁琐见 link。
标签:11,10,00,暴力,22,23,30,40,模拟 From: https://www.cnblogs.com/cannotdp/p/17723191.html