A. Sockets
- 当插口数不够时,显然找最大\(a_i\)进行扩展。
B. Playing Cubes
- 枚举起始颜色,Petya会尽可能相同颜色,Vasya则相反。
C. View Angle
- 极角排序后,用\(atan2(y,x)\)计算相邻的角度(范围在\((-\pi,\pi]\)之间),取反则包括所有点。
- 两个点时需要特判,因为不需要取反。
- 要注意的时,统计的应该是不同的角度,可能存在所有点在一条直线的情况。
D. Sum
- 根据\(a_i \le a_{i+1} \le 2a_i\),得到\[0\le a_{i+1}-a_i\le a_i\]
- 若\(a_{i+1}-a_i-a_{i-1} \ge 0\)时,此时\(a_{i+1}-a_i \le a_i \le 2a_{i-1}\),则\[0\le a_{i+1}-a_i-a_{i-1} \le a_{i-1}\]
- 若小于0,说明\(a_{i+1}-a_i \lt a_{i-1}\),那么\[0\le a_{i-1}-(a_{i+1}-a_i) \le a_{i-1}\]
E. Greedy Elevator
- 2棵树状数组分别维护电梯里的人的信息和等电梯的人的信息。
- 关键时间点:
- 下一个有出电梯的楼层;
- 下一个有要搭电梯的楼层;
- 下一个等电梯的人的到达时间。