
区间DP
做不完的ACM
加油,努力
展开
-
Codeforces 245H 区间DP容斥
题意:给出一个字符串S(|S| <= 5000), Q个询问(1E6), 每次给出L,R, 问L,R里有多少个回文子串。题目链接:http://codeforces.com/contest/245/problem/H题解:dp[i][j] = dp[i + 1][j] + dp[i][j - 1] - dp[i + 1][j - 1] + can[i][j]. 注意下dp顺序即可。 ...原创 2018-03-15 00:23:06 · 195 阅读 · 0 评论 -
HDU4632 区间DP
题意:问串里有多少个回文子序列。题解:区间DP,容斥思想。(和Codeforces245H类似)#include <bits/stdc++.h> using namespace std; using ll = long long ; using ld = long double; #define pb push_back #define SZ(X) ((int)X.size()) ...原创 2018-03-15 00:25:41 · 212 阅读 · 0 评论 -
十六届金马五校赛 L:DP求最长K倍序列
链接:https://www.nowcoder.com/acm/contest/91/L来源:牛客网给一个数组 a,长度为 n,若某个子序列中的和为 K 的倍数,那么这个序列被称为“K 序列”。现在要你 对数组 a 求出最长的子序列的长度,满足这个序列是 K 序列。 输入描述:第一行为两个整数 n, K, 以空格分隔,第二行为 n 个整数,表示 a[1] ∼ a[n],1 ≤ n ≤ 105 , ...原创 2018-04-16 21:06:29 · 248 阅读 · 0 评论 -
区间DP(POJ1651)
Description 有一个长度为n的序列,现取出其中除了最左和最右的元素(顺序任意),取出一个元素的代价为它本身乘相邻元素的乘积,现在想要以最小的代价取出这些元素。 Input 第一行输入一个n,代表元素的数量(n <= 100)第二行输入n个数 (a[i] <= 100); Output 输出最小代价 Sample Input 1 6 10 1...原创 2018-07-21 08:54:31 · 247 阅读 · 0 评论