A

知识点:简单计算几何
等价于求三角形ABC的外心。可以分别求出AB和AC的垂直平分线,它们的交点即为所求。

B

知识点:递归,模拟
关于汉诺塔的实现可以通过递归完成。这道题的难点在于如何模拟。可以开三个栈,这样可以轻松完成塔的移动。至于输出每一步的过程,可以先将栈所有元素取出,输出后再逆向入栈。

C

知识点:思维
计f(x)为第1分钟到第x分钟看的时间总和,那么f(m)-f(n-1)即为所求。
关于计算f(x),可以观察到每60分钟为一个周期,因此计算x/60的除数和余数即可。

D

知识点:搜索,dp
等价于求1到n的路径之和,由于无环,因此可以通过bfs过程中dp求解。

E

知识点:模拟
按题意模拟即可。四舍五入可以用(int)(x+0.5)来解决。

F

知识点:数学
打表可得数列:1,-1,1,-1...找到规律。证明可以用数学归纳法,较繁琐(不建议在赛场上证明)。

G

知识点:数论
每次分解可以分走一个因子,根据唯一分解定律可知,所有正整数的质因数表达式是唯一的,因此双方游戏轮数为质因子的幂之和减一。要注意特判n=1的情况。

H

知识点:C语言基本知识
唯一要注意的是引号的输出用转义字符来表示双引号: \"

I

知识点:dp
设dp[0][i]为前i个字符中,子序列“i”的数量。
dp[1][i]为前i个字符中,子序列“il”的数量。
dp[2][i]为前i个字符中,子序列“ilo”的数量。
……
dp[7][i]为前i个字符中,子序列“iloveyou”的数量。
那么可以轻松得到转移方程。

J

知识点:搜索
bfs裸题。要注意数组是三维的,不要越界(6个方向分别判断)。