出题:求数组中最长递增子序列的长度(递增子序列的元素可以不相连);分析:解法1:应用DP之前需要确定当前问题是否具有无后效性,也就是每个状态都是对之前状态的一个总结,之后的状态仅会受到前一个状态的影响;对于递增子序列
而言,可以首先确定前面k个元素的最长子序列,然后计算增加一个元素之后的最长子序列。...
分类:
其他好文 时间:
2014-05-25 22:20:16
阅读次数:
339
HDU 4832 Chess
思路:把行列的情况分别dp求出来,然后枚举行用几行,竖用几行,然后相乘累加起来就是答案
代码:
#include
#include
#include
using namespace std;
typedef long long ll;
const ll MOD = 9999991;
const int N = 1005;
int t, n, m, ...
分类:
其他好文 时间:
2014-05-25 21:55:04
阅读次数:
280
Best FinancingTime Limit: 20000/10000 MS
(Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s):
29Accepted Submission(s): 3Problem...
分类:
其他好文 时间:
2014-05-25 20:13:10
阅读次数:
211
ChessTime Limit: 6000/3000 MS (Java/Others)Memory
Limit: 32768/32768 K (Java/Others)Total Submission(s): 24Accepted Submission(s):
10Problem Descripti...
分类:
其他好文 时间:
2014-05-25 20:11:11
阅读次数:
236
l链接这题想了好一会呢。。刚开始想错了,以为用自动机预处理出k长度可以包含的合法的数的个数,然后再数位dp一下就行了,写到一半发现不对,还要处理当前走的时候是不是为合法的,这一点无法移到trie树上去判断。之后想到应该在trie树上进行数位dp,走到第i个节点且长度为j的状态是确定的,所以可以根据t...
分类:
其他好文 时间:
2014-05-25 16:12:11
阅读次数:
208
链接这题没想到怎么做,问了下p队长,大悟。。先求出任意两串的在trie树上的最短距离,期间是不能走到不合法的地方,我是用spfa求得,在更新和加入节点时判断一下是不是合法位置。求出最短距离之后,找出一条从0出发遍历所有串的最短距离,可以dp出,dp[i][j]表示当前状态以节点j串结尾的最短距离。枚...
分类:
其他好文 时间:
2014-05-25 15:18:50
阅读次数:
368
链接dp[x][y][node][sta]
表示走到在x,y位置node节点时状态为sta的方法数,因为只有2个病毒串,这时候的状态只有4种,根据可走的方向转移一下。这题输入的是m、N,先列后行,因为输反了,WA了N次啊。。
1 #include 2 #include 3 #include ...
分类:
其他好文 时间:
2014-05-25 11:37:30
阅读次数:
297
链接当时是因为没有做出来这道题才开了自动机的专题,现在看看还是比较简单的。因为每个病毒串只算一次,只有10个病毒串,可以状压一下哪些状态是可以达到的,最后取一个最大值。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #...
分类:
其他好文 时间:
2014-05-25 11:30:13
阅读次数:
303
ACM DP 最大连续子序列 hdu1231...
分类:
其他好文 时间:
2014-05-25 11:06:40
阅读次数:
235
题目链接:uva 12075 - Counting Triangles
题目大意:一个n?m的矩阵,求说有选任意三点,可以组成多少个三角形。
解题思路:任意选三点C(3(n+1)?(m+1))但是有些组合是不可行得,即为三点共线,除了水平和竖直上的组合,就是斜线上的了,dp[i][j]即为ij情况下的斜线三点共线。
#include
#include
typedef long...
分类:
其他好文 时间:
2014-05-25 10:55:21
阅读次数:
201