摘要:
区间dp,切割dp[i][j]的花费和切法无关(无后效性)dp[i][j]表示区间i,j的花费,于是只要枚举切割方法就行了,区间就划分成更小的区间了。O(n^3)四边形不等式尚待学习#include //变量不要取成ignore left之类using namespace std;const int... 阅读全文
posted @ 2015-08-18 23:47
瑞宇
阅读(303)
评论(0)
推荐(0)
摘要:
dp[i][j]表示前一个序列拿了i个颜色,后一个序列拿了j个颜色的最小花费。转移的时候显然只能向dp[i+1][j],或dp[i][j+1]转移,每增加拿走一个颜色,之前已经出现但没结束的颜色个数的跨度都增加1,为了在转移的时候快速算出这个值,先预处理出每个颜色在各个序列中的起始和终止位置。mem... 阅读全文
posted @ 2015-08-18 23:06
瑞宇
阅读(364)
评论(0)
推荐(0)
摘要:
http://codeforces.com/gym/100650概要:给出一个缩写,和一些单词,从单词中按顺序选一些字母作为缩写,问方案数。限制:某些单词要忽略,每个单词至少要选一个字母。dp[i][j]表示到第i个单词的时候已经选了j个字母的方案数。很明显,当前字符ch是第j个字符的时候,第j-1... 阅读全文
posted @ 2015-08-18 22:17
瑞宇
阅读(354)
评论(0)
推荐(0)
摘要:
http://codeforces.com/gym/100650阅读题,边界的cell的邻居要当成一个环形的来算,时间有8s,状态最多2^16种,所以直接暴力枚举就行了。另外一种做法是逆推。#includeusing namespace std;int m,n;const int maxn = 17... 阅读全文
posted @ 2015-08-18 18:11
瑞宇
阅读(258)
评论(0)
推荐(0)
摘要:
题目链接:http://codeforces.com/gym/100650根据给出的树和d,求出一些结点,这些结点形成子树的第d层结点数应该尽量多,具体要求可以参考题目。dfs一个结点前保存询问深度的答案,访问完以后减去之前的值就得到答案了。#includeusing namespace std;c... 阅读全文
posted @ 2015-08-18 18:06
瑞宇
阅读(172)
评论(0)
推荐(0)

浙公网安备 33010602011771号