题意:查找这样的子回文字符串(未必连续,但是有从左向右的顺序)个数。

简单的区间dp,哎,以为很神奇的东西,其实也是dp,只是参数改为区间,没做过此类型的题,想不到用dp,以后就

知道了,若已经知道【0,i】,推【0,i+1】, 显然还要从i+1 处往回找,dp方程也简单: 
dp[j][i]=(dp[j+1][i]+dp[j][i-1]+10007-dp[j+1][i-1])%10007; 减去中间一段重复的 
if(s[i]==s[j])dp[j][i]=(dp[j][i]+dp[j+1][i-1]+1)%10007;  这里不忘记,新加入的和结尾构成的情况。

PS:弱菜还需努力!下面俩点注意。

#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
using namespace std;
long long  dp[1005][1005];
int main()
{int T;cin>>T;string s;int cs=1;while(T--){cin>>s;//memset(dp,0,sizeof(dp));int len=s.size();for(int i=0;i<len;i++)dp[i][i]=1;for(int i=0;i<len;i++){for(int j=i-1;j>=0;j--){dp[j][i]=(dp[j+1][i]+dp[j][i-1]+10007-dp[j+1][i-1])%10007;  //  注意1,当有减法的时候,取模要加个模!否则负数!if(s[i]==s[j])dp[j][i]=(dp[j][i]+dp[j+1][i-1]+1)%10007;  //注意2:取模的时候不要用+= }}printf("Case %d: %d\n",cs++,dp[0][len-1]);}return 0;
}

转载于:https://www.cnblogs.com/yezekun/p/3925775.html

hdu 4632 子字符串统计的区间dp相关推荐

  1. HDU 5693:D Game(区间DP)

    D Game Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  2. HDU 5115 (杀狼,区间DP)

    题意:你是一个战士现在面对,一群狼,每只狼都有一定的主动攻击力和附带攻击力.你杀死一只狼.你会受到这只狼的(主动攻击力+旁边两只狼的附带攻击力)这么多伤害~现在问你如何选择杀狼的顺序使的杀完所有狼时, ...

  3. P4302-[SCOI2003]字符串折叠【区间dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4302 题目大意 一个字符串,对于一个字符串AAA.可以将连续的nnn个AAA缩成n(A)n(A)n(A).求最短 ...

  4. HDU 5115 M - Dire Wolf 【区间dp】

    传送门 Dire wolves, also known as Dark wolves, are extraordinarily large and powerful wolves. Many, if ...

  5. HDU 5968 异或密码(区间dp)

    Problem Description 晨晨在纸上写了一个长度为N的非负整数序列{ai}.对于这个序列的一个连续子序列{al,al+1,-,ar}晨晨可以求出其中所有数异或的结果 alxoral+1x ...

  6. 【剑指offer】最长不含重复字符的子字符串

    题目: * 面试题48:请从字符串中找出一个最长的不包含重复字符的子字符串, * 计算该最长子字符串的长度.假设字符串中只包含从'a'到'z'的字符. * 例如,在字符串中'arabcacfr',最长 ...

  7. leetcode - 467. 环绕字符串中唯一的子字符串

    解题思路:dp[i]表示以第i个字母结尾的最长的子字符串的长度.那么字符串P的不同子字符串的数量为dp[0] + dp[1] + - + dp[25] (从a一直加到z).循环P中的每一个字符,不断更 ...

  8. Palindrome subsequence HDU - 4632 区间dp|记忆化搜索

    // 区间dp import java.util.Scanner;/**** @author CN*/ public class main {static int mod = 10007;static ...

  9. HDU 2476 String painter (区间DP)

    题意:给出两个串a和b,一次只能将一个区间刷一次,问最少几次能让a=b 思路:首先考虑最坏的情况,就是先将一个空白字符串刷成b需要的次数,直接区间DP[i][j]表示i到j的最小次数. 再考虑把a变成 ...

最新文章

  1. mysql查询语句在哪里编写_mysql编写语句:更新查询
  2. 461在全志r16平台tinav3.0系统下使用地磁计QMC5883L
  3. php显示mysql数据实例_php 连接mysql数据库并显示数据 实例 转载 aoguren
  4. 交互设计精髓_设计空间的精髓
  5. 没找到rpm命令_Mysql的命令总结和PyMysql
  6. js 省市下拉列表联动
  7. 页游中的十大经典游戏题材
  8. Jquery瀑布流插件
  9. 《数值分析(原书第2版)》—— 1.5 不需要导数的根求解
  10. Atitit.日志系统slf4j的使用
  11. 梦龙即时通讯软件测试自学,梦龙网络计划教程.pdf
  12. excel游戏_Excel Jawbreak游戏
  13. Postman中文版下载[9.12.0]
  14. 编程语言python这个词怎么翻译_五大理由从 Python 转到 Go 语言【已翻译100%】...
  15. 软件测试学习 之 进阶之路
  16. 动态时间规整算法: 从DTW到FastDTW
  17. win10 系统网络驱动出现黄色感叹号
  18. 【项目问题总结】4:修改操作的重复性验证逻辑
  19. 语音差分编码(DPCM)的实现与改进——Python实现
  20. 计算机程序设计基础课程设计(C语言)[2023-02-28]

热门文章

  1. Django的模板层
  2. springboot 集成logback
  3. 使用xshell5 从CentOS主机download资料
  4. xcode armv6 armv7 armv7s arm64
  5. IIS6.0 日期格式问题
  6. 利用EntLib授权机制实现对ASP.NET页面的自动授权
  7. mysql修改最后一条记录删除第一条记录
  8. org.apache.hadoop.ipc.Client: Retrying connect to server异常的解决
  9. java 异常的捕获及处理
  10. 使用CSS对页面加载的淡入效果