标签(空格分隔): 区间qp


Palindrome subsequence

\[求一个string的 回文子序列 的个数
\]

少废话,上代码。

#include<bits/stdc++.h> //头文件没有什么问题
using namespace std; //名字空间没有什么问题
const int maxn = 1000 +5; // 字符串的最大长度
const int mod = 10007;//题目规定的模数
int n,cnt;//n:有多少个字符串,cnt:记录当前有多少个case
char s[maxn];//字符数组没有什么问题
int dp[maxn][maxn];//dp[i,j]代表[i,j]中有多少个Palindrome subsequence
int main(){
while(~scanf("%d",&n)){
while(n--){
memset(dp,0,sizeof(dp));
//置0好习惯!
scanf("%s",s);
//输入没有什么问题
int len = strlen(s);
//取字符串长度len
for(int i=0;i<len;i++)
dp[i][i]=1;
//每个字符都是一个Palindrome subsequence
for(int tail=0;tail<len;tail++){
//枚举尾
for(int head=tail-1;head>=0;head--){
//枚举头,因为头是从后往前推的,所以不会有问题
dp[head][tail]=(dp[head+1][tail]+dp[head][tail-1]-dp[head+1][tail-1]+mod)%mod;
//dp[h,t] = dp[h,t-1] + dp[h+1,t] - dp[h+1, t-1],注意取模!<这一步用到了容斥原理>
if(s[tail]==s[head])
dp[head][tail]=(dp[head][tail]+dp[head+1][tail-1]+1+mod)%mod;
//如果都为相等,则dp[h+1,t-1]中的每个回文子序列都可以增长一个
//eg. 1 234 1 , 就可以多出来121,131,141.
}
}
printf("Case %d: %d\n",++cnt,dp[0][len-1]);
//输出
}
}
return 0;
//happy end
}

HDU4632 Palindrome subsequence的更多相关文章

  1. Hdu4632 Palindrome subsequence 2017-01-16 11:14 51人阅读 评论(0) 收藏

    Palindrome subsequence Problem Description In mathematics, a subsequence is a sequence that can be d ...

  2. hdu4632 Palindrome subsequence 回文子序列个数 区间dp

    Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65535 K (Java/ ...

  3. hdu4632 Palindrome subsequence (区间dp)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4632 题意:求回文串子串的的个数. 思路:看转移方程就能理解了. dp[i][j] 表示区 ...

  4. 【HDU4632 Palindrome subsequence】区间dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 题意:给你一个序列,问你该序列中有多少个回文串子序列,可以不连续. 思路:dp[i][j]表示序 ...

  5. hdu4632 Palindrome subsequence ——区间动态规划

    link:http://acm.hdu.edu.cn/showproblem.php?pid=4632 refer to: o(╯□╰)o……明明百度找的题解,然后后来就找不到我看的那份了,这位哥们对 ...

  6. hdu-4632 Palindrome subsequence (回文子序列计数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 问题要求回答一串字符串中回文子序列的数量,例如acbca就有 a,c,b,c,a,cc,aa,a ...

  7. Palindrome subsequence

    Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65535 K (Java/ ...

  8. HDU 4632 Palindrome subsequence (区间DP)

    Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65535 K (Java/ ...

  9. HDU Palindrome subsequence(区间DP)

    Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65535 K (Java/Oth ...

随机推荐

  1. Eureka+Hystrix(断路器、熔断器)

    红圈是断路器的三种状态: 关闭:1.当consumer访问provider时,在网络超时访问内,访问成功: 2.有时互相调用会出现网络涌动,(比如北京访问广东的服务器要经过很多次路由才能达到并相应), ...

  2. 一个Task.Factory.StartNew的错误用法

    同事写了这样一段代码: FactoryStartNew类: using System; using System.Collections.Generic; using System.Linq; usi ...

  3. 十八般武艺玩转GaussDB(DWS)性能调优(三):好味道表定义

    摘要:表结构设计是数据库建模的一个关键环节,表定义好坏直接决定了集群的有效容量以及业务查询性能,本文从产品架构.功能实现以及业务特征的角度阐述在GaussDB(DWS)的中表定义时需要关注的一些关键因 ...

  4. 推动中国制造升级,汽车装配车间生产流水线3D可视化

    前言 随着<中国制造2025>的提出,制造业迎来了全新的发展机遇.更多的企业将制造业信息化技术进行广泛的应用,如 MES 系统.数字孪生以及生产管理可视化等技术的研究应用,已经成为社会各界 ...

  5. maven install 时 pom中skip test

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-suref ...

  6. 第三方库文件Joi对数据进行验证的方法以及解决Joi.validate is not a function的问题

    Joi:javaScript对象的规则描述语言和验证器 1.npm install joi@14.3.1 2.建立joi.js文件 3.导入第三方包joi const Joi = require('j ...

  7. win10,安装 vmware 后没有虚拟网卡,导致虚拟机没有 ip

    1.确认关闭windows firewall 服务,最保险的关闭时先把服务改为手动再关闭防止塔自动启动! 2.确认开启Device  Install Service .Device Setup Ser ...

  8. 我发现了一个特别Man的Linux工具!!!

    Linux命令不用我多说吧,谁还不会几个?但是一个命令可能有几十种用法,就拿最简单也是最常用的ls来举例,它就有将近20种options用法 比如 ls -a :现实所有文件及其隐藏文件 ls -t ...

  9. 性能工具-io工具

    I/O:某网上问题通过top  iotop pidstat vmstat 工具定位出io高原因,内存不够.

  10. dst_output发包

    不管是收到报文转发还是本机发送报文,最后都会调用dst_output /* Output packet to network from transport. */ static inline int ...