Codeforces Round #313 (Div. 2)
2015-08-08 16:15
302 查看
div2 都过不了 TAT
贪心地放就可以啦。
设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! 然后就秒了。
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! 然后就秒了。
相关文章推荐
- [leedcode 230] Kth Smallest Element in a BST
- 分析javascript关闭
- 士兵杀敌(一)
- C++ STL遍历map的时候如何删除其中的element
- 深入分析Android (build/core/*.mk脚本)
- win7 64位安装redis 及Redis Desktop Manager使用
- hpu 1695 问题 A 一道签到题(KMP算法的考察)
- BlockingQueue
- 理解Python中的With语句
- 五通信算法:五种编码增益比较matlab模拟
- sqlserver2008不允许保存更改
- 所闻所获4:下拉刷新控件2
- fedora22 dnf安装软件All mirrors were already tried without success的错误
- Linux命令学习之一
- TOMCAT 异常启动的情况
- Scala中SAM转换实战详解之Scala学习笔记-15
- HTML 笔记,持续更新
- Redundant Paths---poj3177(双连通分量)
- #转 c语言中.h文件的作用
- 字符串操作之分割字符串