A. Planet Distance
一轮 dfs 找出环的所有节点,接着从这些节点 bfs,即可求得距离。时间复杂度为 O(n)
。
B. Fairies and Witches
最终选出来的每个 stick 占用两个 node,对于小数据,可选方案里只可能有 3 个 stick,因此三层循环枚举 3 个 stick,判断能否组成凸多边形即可(最长边长度小于其余边长度的和)。
对于大数据,最多 15 个点,可选方案里最多 7 个 stick,dfs 暴力搜索即可,记录 node 的占用状态、最长边长度和总边长(其余边长度的和 = 总边长 - 最长边长度)。
1 |
|
C. Kickstart Alarm
数学题,通过整理可以得出:
整理一下:
其中 是等比序列和,因为需要取模,我使用二分来实现, 随着 i 的递推可以求得,因此总时间复杂度 O(n * log(k))
。
1 |
|