div2 都过不了 TAT
A. Currency System in Geraldion
贪心发现,当且仅当没有1元时是-1,否则是1。
B. Gerald is into Art
一个小bug,WA了好多次。
贪心地放就可以啦。
C. Gerald's Hexagon
就是一个正六边形裁去三个角。
D. Equivalent Strings
不忍直视。
def f(x):
if len(x) & 1: return x
a, b = f(x[:len(x) / 2]), f(x[-len(x) / 2:])
return a + b if a < b else b + a
print ['NO', 'YES'][f(raw_input()) == f(raw_input())]
E. Gerald and Giant Chess
经典DP的加强版,好题。
设dp(i)为安全走到第i个障碍的方案数量,calc(w,h)为大小为(w,h)的没有障碍的棋盘从(1,1)到(w,h)的方案数。
那么$$dp(i) = calc(x_i, y_i) - sum_{j(x_i geq x_j , y_i geq y_j)} {calc(x_i - x_j + 1, y_i - y_j + 1)}$$
这里的j就是不合法路径遇到的第一个障碍。
我们显然可以安排一个没有后效性的DP! 然后就秒了。