标签(空格分隔): 区间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
}

最新文章

  1. 搞不清FastCgi与PHP-fpm之间是个什么样的关系?
  2. [Note] Build your SDL2 Environment in Visual Studio 2013 配置你的SDL2运行环境
  3. Trie树的应用:查询IP地址的ISP
  4. automaticallyAdjustsScrollViewInsets (iOS)
  5. ArcGis——好好的属性表,咋就乱码了呢?
  6. BZOJ3029守卫者的挑战(概率dp)
  7. 关于MYSQL ERROR1045 报错的解决办法
  8. php之memcached存储session配置、存储、获取
  9. Java语法基础学习DayEight
  10. ubuntu 17.10.1 安装 virtual box 增强工具
  11. [py][mx]django注册-邮件激活
  12. ICD2 VPP limiter for new PIC microcontrollers.
  13. ScaleIO 1.2 基础
  14. php if语句判定ms查询是否为空
  15. django wsgi nginx 配置
  16. Python3爬虫(一)HTTP相关基础
  17. 常用模块random,time,os,sys,序列化模块
  18. AJPFX关于java中可访问控制符和非访问控制符的详细总结
  19. Windows JDK 1.8降级为1.7方法
  20. [RxJS] Implement pause and resume feature correctly through RxJS

热门文章

  1. 简单的学生管理(C语言)
  2. 2. HttpRunnner录制生成用例
  3. Djano之数据库--ORM
  4. Windows Server 2019 在桌面图标
  5. 删除指定路径下指定天数之前(以文件的创建日期为准)的文件:BAT + REG + Ritchie Lawrence 日期函数
  6. 不吹不黑,跨平台框架AspNetCore开发实践杂谈
  7. APIO 2020 爆零记
  8. SSM实现文件上传
  9. 【SpringBoot】10.SpringBoot文件上传
  10. VS中Dev控件在工具箱里的不见的解决办法