Codeforces Round #159 (Div. 2)

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$$
  1. \(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}$$
  2. 若小于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棵树状数组分别维护电梯里的人的信息和等电梯的人的信息。
  • 关键时间点:
  1. 下一个有出电梯的楼层;
  2. 下一个有要搭电梯的楼层;
  3. 下一个等电梯的人的到达时间。
posted @ 2016-11-21 22:12  mcginn  阅读(118)  评论(0编辑  收藏  举报