摘要: 题意:用13、23……k3这些数加起来组成n,输出总方案数d(i, j)表示前i个数构成j的方案数则有d(i, j) = d(i-1, j) + d(i, j - i3)可以像01背包那样用滚动数组来实现 1 //#define LOCAL 2 #include 3 #include 4 #in... 阅读全文
posted @ 2014-08-31 22:14 AOQNRMGYXLMV 阅读(241) 评论(0) 推荐(0)
摘要: 第一次用lrj的高精度类模板,感觉还是很好用的c[x]表示数字x需要的火柴根数将已经使用的火柴数i看做状态,每添加一个数字x状态就从i转移到i+c[x]d[i]表示从节点0到节点i路径的条数,则答案f(n) = d(1) + d(2) + …… + d(n)开始的时候不计入0,最后的时候如果n≥6答... 阅读全文
posted @ 2014-08-31 17:27 AOQNRMGYXLMV 阅读(212) 评论(0) 推荐(0)
摘要: 我发现我一直理解错题意了,这里的子序列指的是连续子序列,怪不得我写的LCS一直WA顺便复习一下并查集 1 //#define LOCAL 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const... 阅读全文
posted @ 2014-08-31 12:07 AOQNRMGYXLMV 阅读(211) 评论(0) 推荐(0)
摘要: 这也是当初卡了很久的一道题题意:从左上角的格子出发选一条路径到右上角然后再回到左上角,而且两条路径除了起点和终点不能有重合的点。问所经过的格子中的最大和是多少状态设计:我们可以认为是从左上角出发了两条路径,然后同时到达右下角。容易看出,第k个阶段所有可能到达的格子构成一条斜线而且满足x1 + y1 ... 阅读全文
posted @ 2014-08-31 09:25 AOQNRMGYXLMV 阅读(229) 评论(0) 推荐(0)