bx回文(dp 杭电排位赛-6)
来源:互联网 发布:淘宝宝贝视频尺寸大小 编辑:程序博客网 时间:2024/06/03 22:55
bx回文
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 577 Accepted Submission(s): 113
Problem Description
bx有一个长度一个字符串S,bx可以对其进行若干次操作。
每次操作可以删掉一个长度为k(1 <= k <= n)的连续回文子串,bx获得ak 的愉悦值。
一个字符串是回文串当且仅当正读和反读都是一样的。例如"a","aa",”abcba”是回文串,"ab","abc","aabab"不是回文串。
字符串删除之后相邻的字符不会合并在一起。
现在,bx想知道他最多能获得多少愉悦值。
每次操作可以删掉一个长度为k(1 <= k <= n)的连续回文子串,bx获得
一个字符串是回文串当且仅当正读和反读都是一样的。例如"a","aa",”abcba”是回文串,"ab","abc","aabab"不是回文串。
字符串删除之后相邻的字符不会合并在一起。
现在,bx想知道他最多能获得多少愉悦值。
Input
输入第一行一个整数T,表示数据组数。
对于每组数据,第一行一个整数n。
第二行n个整数,第i个表示ai 。
第三行为字符串S。
1 <= T <= 20
1 <= n <= |S| < 5000
0 <=ai < 1000000000
S只包括小写字母。
对于每组数据,第一行一个整数n。
第二行n个整数,第i个表示
第三行为字符串S。
1 <= T <= 20
1 <= n <= |S| < 5000
0 <=
S只包括小写字母。
Output
对每组数据,输出bx所能获得的最大愉悦值。
Sample Input
231 2 3aba33 2 1aba
Sample Output
39
先o(n2)预处理 得到每段区间内是否是回文串,然后o(n)查询更新愉悦值
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 5000+5; char s[maxn]; LL a[maxn], dp[maxn]; bool ok[maxn][maxn]; int n, len; int main() { int T; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i = 1; i<=n; i++) scanf("%lld",&a[i]); scanf("%s", s+1); len = strlen(s+1); // cout<<len<<endl; memset(ok,0,sizeof(ok)); memset(dp,0,sizeof(dp)); for(int i = 1; i<=len; i++) { int l = i, r = i; while(l>=1 && r<=len && (r-l+1)<=n && s[l]==s[r]) ok[l--][r++] = 1; } for(int i = 1; i<=len; i++) { int l = i, r = i+1; while(l>=1 && r<=len && (r-l+1)<=n && s[l]==s[r]) ok[l--][r++] = 1; } for(int i = 1; i<=len; i++) for(int j = 1; j<=i; j++){ if(ok[j][i]) dp[i] = max(dp[i],dp[j-1]+a[i-j+1]); } printf("%lld\n",dp[len]); } return 0; }
阅读全文
0 0
- bx回文(dp 杭电排位赛-6)
- hdu_round3-1003.bx回文(manacher+dp)
- 回文 (dp)
- uva10453(回文串dp)
- 切割回文(区间dp)
- [CODEVS1520]回文字符串(dp)
- CodeForces 245H (dp+回文串)
- 构造回文串(简单DP)
- NYOJ 题目1023 还是回文(dp)
- 回文串数dp(uvaAgain Palindromes )
- NYOJ1023 还是回文(区间dp)
- nyoj 还是回文 1023 (DP)
- nyoj 37题 回文字符串 (dp)
- nyoj 1023 还是回文(dp)
- (经典)POJ-3280 回文串DP
- POJ1159回文字符串(DP+滚动数组)
- 【codevs 1520】回文字符串(dp)
- 【tyvj】【dp】回文词(IOI2000)
- synchronized wait notify的关系
- Spring 学习笔记 (II) 之后处理器和Resource
- js删除数组中的元素delete和splice的区别
- ubuntu
- 海思开发板HI3536双千兆网口HDMI 16路1080P A17四核H.265/64解码
- bx回文(dp 杭电排位赛-6)
- python静态服务器
- Box2D物理引擎入门
- 数位DP讲解
- 浏览器访问一个网站所经历的步骤
- Maven工程大量包缺失或冲突
- Eclipse编写JavaWeb中JSP页面运行时汉字乱码问题
- 真Unity3d_关于基本GameObject的查找
- JavaScript计算页面滚动条宽度