动态规划
bryant03
这个作者很懒,什么都没留下…
展开
-
HDU_5617Jam's maze
这道题一开始看起来确实有点蒙,首先想到的就是DP,这个矩阵太明显了,但是不是很清楚状态转移方程应该怎么搞,而且数据量有点大。 其实可以这么理解,让(1,1)和(n,n)同时向中间走,在中间汇合,定义f[x1][y1][y1][y2]为从初始点到(x1,y1)(x2,y2)两点时,构成的子串相同的方案数,例如在题目样例中,f[1][2][3][4]就应该等于1,因为同时构成”AB”这个子串,好的那么原创 2016-01-31 15:46:20 · 675 阅读 · 0 评论 -
codeforces 629C
//我们将题意修改一下,如果出现左括号,则对平衡值加一,如果出现右括号则把平衡值建议。 //那么我们的条件就变成时刻保持平衡值为非负,并且保证最后平衡值为零 //假设dp[i][j]表示长度为i的字符串平衡值为j的时候的情况个数,并且满足中间过程中不会出现 //平衡值小于零的情况。那么我们的解法就是先计算dp[i][j],然后枚举左边字符串的i,j,如果满足 //if(j+minn>=0&&j+tm原创 2016-02-27 23:21:19 · 573 阅读 · 0 评论 -
zoj1144
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <set> #include <queue> #include <map> #include <cmath> #include <vector> using namespace std; #define N 500010 #de原创 2016-05-06 14:39:28 · 681 阅读 · 0 评论 -
zoj1245
一开始用的是暴力的方法,但是老是WA,后来看了看竟然是简单DP #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <set> #include <queue> #include <map> #include <cmath> #include <vector> using nam原创 2016-05-06 15:45:26 · 397 阅读 · 0 评论