摘要: 题解懒得写 转自 http://tisu.is-programmer.com/posts/38862.html如果在新图中存在 i->k 和 j->k那么在原图里一定是这样的所以我们可以发现,如果存在i->k和j->k但只存在i->t或j->t其中之一,则新图不合法。mycode:/** * Problem:Inverse * Author:Shun Yao * Time:2013.5.27 * Result:Accepted */#include <cstring>#include <cstdlib>#include <cst 阅读全文
posted @ 2013-05-28 16:56 hsuppr 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 神做法见http://tieba.baidu.com/p/2354159387DP,f[t][i][j][k][p],表示枚举到第t位,A已放i个1,B已放j个1,C已放k个1,若p=0,表示该状态无进位;否则表示有进位。/** * Problem:aplusb * Author:Shun Yao * Time:2013.5.27 * Result:Accepted * Memo:DP */#include <cstring>#include <cstdlib>#include <cstdio>using namespace std;long max(lon 阅读全文
posted @ 2013-05-28 16:52 hsuppr 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 最终是没有平局的。我们发现白方赢是只有一步吃掉黑方。所以有人用dfs dp 过的。我是用贝贝的方法做的。http://tieba.baidu.com/p/2354159387(我写的有些繁琐)/** * Problem:chess * Author:Shun Yao * Time:2013.5.27 * Result:Accepted * Memo:DP */#include <cstring>#include <cstdlib>#include <cstdio>#define MaxN (20)#define MaxS (320000)#define ai 阅读全文
posted @ 2013-05-28 16:45 hsuppr 阅读(381) 评论(0) 推荐(0) 编辑
摘要: /** * Problem:Nim * Author:Shun Yao * Time:2013.5.28 * Result:Accepted */#include <cstdio>void swap(long &x, long &y) { x ^= y; y ^= x; x ^= y;}int main() { long n, a[100], b[100]; freopen("nim.in", "r", stdin); freopen("nim.out", "w", stdout); s 阅读全文
posted @ 2013-05-28 16:25 hsuppr 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 好长时间了。。简要除草。棋盘制作:经典dp。。。报表统计:明显数据结构,,,但我没想出来,第一问可以用堆,第二问用平衡树。矩阵游戏:好吧。一眼二分图,匈牙利过。时态同步:树形dp,貌似不难,(我也没想出来- -|),状态是每棵子树时态同步所需时间。 阅读全文
posted @ 2013-05-28 15:48 hsuppr 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 。。。不好解释直接上代码:/** * Problem:SAO * Author:Shun Yao * Time:2013.5.22 * Result:Accepted * Memo:DP */ #include <cstring>#include <cstdlib>#include <cstdio> #define SLL signed long long#define MOD 1000000007 using namespace std; const long Maxn = 1005, Maxm = 10005; long n, siz[Maxn], c[ 阅读全文
posted @ 2013-05-28 15:37 hsuppr 阅读(318) 评论(0) 推荐(0) 编辑