lightoj 1025 The Specials Menu (dp)
来源:互联网 发布:ajax实例java类代码 编辑:程序博客网 时间:2024/05/22 08:15
题面
题意
给出一个,可以去掉若干个字符,使它变为回文串的方法有几种.
方法
可以发现,任何一种操作都可以通过不断进行以下三种得到:
1.去掉第一个.dp[i][j]+=dp[i+1][j]
2.去掉最后一个.dp[i][j]+=dp[i][j-1]
3.两边都不去掉(在两端相同的情况下)dp[i][j]+=dp[i+1][j-1]
注意,一二操作同时进行时有重叠部分(dp[i+1][j-1]),相加时要减去.
且再进行三操作时+1(仅有i,j两点组成的字符串)
故最终的方法为:
#define ll long longll dfs(ll u,ll v){ if(v<=u) { if(u==v) return 1; return 0; } if(dp[u][v]!=-1) return dp[u][v]; ll res=0; res+=dfs(u+1,v)+dfs(u,v-1); if(ch[u]==ch[v]) res++; else res-=dfs(u+1,v-1); dp[u][v]=res; return res;}
代码
#include<bits/stdc++.h>#define ll long longusing namespace std;ll T,TT,dp[70][70];char ch[70];ll dfs(ll u,ll v){ if(v<=u) { if(u==v) return 1; return 0; } if(dp[u][v]!=-1) return dp[u][v]; ll res=0; res+=dfs(u+1,v)+dfs(u,v-1); if(ch[u]==ch[v]) res++; else res-=dfs(u+1,v-1); dp[u][v]=res; return res;}int main(){ ll i,j; cin>>T; TT=T; while(T--) { scanf("%s",ch+1); memset(dp,-1,sizeof(dp)); printf("Case %lld: %lld\n",TT-T,dfs(1,strlen(ch+1))); }}
阅读全文
1 0
- lightoj 1025 The Specials Menu (DP)
- LightOJ 1025 - The Specials Menu(dp)
- LightOJ 1025 - The Specials Menu(区间DP)
- LightOJ 1025 - The Specials Menu【区间DP】
- lightoj 1025-The Specials Menu 区间DP
- lightoj 1025 - The Specials Menu 【区间dp】
- lightoj 1025 The Specials Menu (dp)
- LightOJ 1025 - The Specials Menu
- LightOJ - 1025 The Specials Menu(区间DP)
- LightOJ 1025 - The Specials Menu (区间dp)
- LightOJ 1025 The Specials Menu(区间dp)
- [区间DP] The Specials Menu LightOJ
- Light OJ 1025 The Specials Menu(区间DP)
- Light OJ 1025 The Specials Menu (区间DP)
- LightOJ1025-The Specials Menu-区间dp
- The Specials Menu 基础区间 dp
- Light OJ 1025 The Specials Menu 详细题解(回文串的区间DP)
- Lightoj 1025 DP
- 对maven的初步理解
- Informatica 初学日记全
- Spark性能优化指南——基础篇
- [错题记录][vijos1280]The Moment-遇见
- 蓝点通用管理系统V13.0 Internet网络版破解应用无穷的自定义管理软件平台
- lightoj 1025 The Specials Menu (dp)
- 泓樽付系统开发
- 1、低功耗蓝牙简介
- 浅析正向代理、反向代理
- 安装了 gosublime出现错误: MarGo: Missing required environment variables: GOPATH
- 一个json对象相互转化工具类
- Android 获取路径总结
- BZOJ 1051 [HAOI2006]受欢迎的牛
- Hadoop之RPC协议的使用