题意:

给出一个word,求有多少种方法你从这个word清除一些字符而达到一个回文串。

思路:

区间问题,还是区间DP;

我判断小的区间有多少,然后往外扩大一点。

dp[i,j]就代表从i到j的方案数。

状态转移:

其实对于在任意区间[i ,j],都可以,

在子区间[i+1,j]中可以直接去掉s[j]时,顺便去掉s[i],所以就有它的方案,

在子区间[i,j-1]中可以直接去掉s[i]时,顺便去掉s[j],所以就有它的方案,

但是s[i],s[j]不相等的时候

dp[i+1,j],dp[i,j-1]会重复一个情况(把s[i]和s[j]都删除了)

所以再减去一个dp[i+1,j-1]就好了;

相等的话,虽然可以直接把两端去掉,但是我们可以把多出来的这一部分首尾加上s[i]和s[j],

这样就又是不同的情况了,所以不需要再减去。

然后还有一种特殊的情况就是把区间[i+1, j-1]全部删完,只留一个s[i]和s[j]

膜泰巨blog【点这里~

  1. #include<bits/stdc++.h>
  2. #include<string.h>
  3. using namespace std;
  4. typedef long long LL;
  5. typedef unsigned long long ULL;
  6. const double eps=1e-5;
  7. const double pi=acos(-1.0);
  8. const int mod=1e8+7;
  9. const LL INF=0x3f3f3f3f;
  10. const int N=66;
  11. char s[N];
  12. LL solve()
  13. {
  14. LL dp[N][N];
  15. int len=strlen(s+1);
  16. memset(dp,0,sizeof(dp));
  17. for(int i=1;i<=len;i++)
  18. {
  19. for(int j=1;(j+i-1)<=len;j++)
  20. {
  21. int k=j+i-1;
  22. dp[j][k]=dp[j+1][k]+dp[j][k-1];
  23. if(s[j]==s[k])
  24. dp[j][k]+=1;
  25. else
  26. dp[j][k]-=dp[j+1][k-1];
  27. }
  28. }
  29. return dp[1][len];
  30. }
  31. int main()
  32. {
  33. int cas=1;
  34. int t;
  35. scanf("%d",&t);
  36. while(t--)
  37. {
  38. LL ans;
  39. scanf("%s",s+1);
  40. ans=solve();
  41. printf("Case %d: %lld\n",cas++,ans);
  42. }
  43. return 0;
  44. }

lightoj 1025【区间DP】的更多相关文章

  1. lightoj 1025 区间dp

    #include<bits/stdc++.h> using namespace std; typedef long long ll; char a[70]; ll dp[70][70]; ...

  2. hdu 5693 && LightOj 1422 区间DP

    hdu 5693 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5693 等差数列当划分细了后只用比较2个或者3个数就可以了,因为大于3的数都可以由2和3 ...

  3. LightOJ 1422 (区间DP)

    题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27130 题目大意:按顺序去参加舞会.每个舞会对衣服都有要求.可以 ...

  4. lightoj 1033 区间dp

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1033 #include <cstdio> #include <cst ...

  5. lightoj 1031 区间dp

    题目链接: http://lightoj.com/volume_showproblem.php?problem=1031 #include<cstdio> #include<cstr ...

  6. LightOJ 1422 区间DP Halloween Costumes

    d(i, j)表示第i天到第j天至少要穿多少件衣服. 先不考虑第i天和后面 i+1 ~ j 天的联系,那就是至少要穿 1 + d(i+1, j)件衣服. 再看状态转移,如果后面第k(i+1 ≤ k ≤ ...

  7. Lightoj 1025 - The Specials Menu (区间DP)

    题目链接: Lightoj 1025 - The Specials Menu 题目描述: 给出一个字符串,可以任意删除位置的字符,也可以删除任意多个.问能组成多少个回文串? 解题思路: 自从开始学dp ...

  8. 区间DP LightOJ 1422 Halloween Costumes

    http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...

  9. LightOJ 1422 Halloween Costumes 区间dp

    题意:给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再穿了,问至少要带多少条衣服才能参加所有宴会 思路:dp[i][j]代表i-j天最少要带的衣服 从后向前dp 区间从大到小 更新d ...

随机推荐

  1. onlyOffice 开发相关 总结

    onlyOffice 服务端 客户端 相关开发整理 功能: 所有客户端都可用 云端部署服务 查看 预览 doc ppt excel 编辑 权限控制 开发技术准备 用户服务器端 提供保存接口 用户浏览器 ...

  2. Eclipse打包Android项目时用到proguard.cfg后,出现的Warning:can&#39;t find referenced class问题的解决方式

    Warning: can't find superclass or interface Warning: can't find referenced class 这两个问题的解决方法: 1.要把你项目 ...

  3. SVN系列之—-SVN版本回滚的办法

    例:SVN版本为:TortoiseSVN 1.9.7 一.SVN简介 subversion(简称svn)是一种跨平台的集中式版本控制工具,支持linux和windows. 版本控制解决了:*代码管理混 ...

  4. netty5源代码探索(一)----ByteBuf初探

    Netty的各种简单介绍,总体架构就不介绍了,假设大家感觉的确须要,给我留言我再追加. 这里再推广一个自己做得netty+spring的集成方案,优化netty配置启动,并提供基础server搭建的配 ...

  5. 【学生信息管理系统】EOF 和 BOF

    敲完学生信息管理系统时,在删除信息的时候,常常会出现下图这种错误,遇到问题就要解决这个问题.经过查阅理解了记录集Recordset的EOF和BOF属性,用这两个属性能够知道记录集中是否有信息存在. E ...

  6. VB.NE总结

    VB.NET视频看完了.但台湾微软资深讲师的声音还回荡在我的脑海中啊.刚開始听两位老师的讲课那是一个纠 结.感觉不亚于听英语听力训练.后来看到王鹏同学转载的台湾计算机术语和大陆计算机术语的对比,我才明 ...

  7. 20170225 ABAP获取字符串长度/字节长度

    函数YGET_CHAR_LONG: FUNCTION YGET_CHAR_LONG. *"-------------------------------------------------- ...

  8. thinkphp 防sql注入

    $Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->selec ...

  9. XMLHttp.send()不传参时必须传null吗?

    xmlhttp的send是传递参数用的,但是只有在使用post方式提交请求的时候才有用如下:xmlhttp.open("post",url,true); ...xmlhttp.se ...

  10. java.lang.IllegalArgumentException: No converter found for return value of type: class com.st.bean.User

    原因:springmvc默认是没有对象转换成json的转换器的,要添加jackson依赖 在pom.xml中添加 <dependency> <groupId>com.faste ...