uva 10453 Make Palindrome
来源:互联网 发布:手机域名注册有什么用 编辑:程序博客网 时间:2024/06/04 18:11
题意:给你n个串(长度最多为1000),问对于每个串插入最少多少m个字符能使它变成一个回文串。输出m,并把回文串输出.
看了解题报告。总结,还要随便用memset,否则会T。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N=1005;struct node{ int cost,cmd; int x,y; void fz(int b,int c,int d){cmd=b;x=c;y=d;}}map[N][N];int le,ri;char L[N],R[N],str[N];int fun(int,int );int print_ans(int,int);int main(){ while(gets(str+1)) { le=0;ri=0; int len=strlen(str+1); printf("%d ",fun(1,len)); print_ans(1,len); L[le]='\0';printf("%s",L); for(int i=ri-1;i>=0;i--) putchar(R[i]); puts(""); for(int i=0;i<=len;i++) { for(int j=0;j<=len;j++) { map[i][j].cost=0; } } } return 0;}int fun(int x,int y){ if(x>=y){return 0;} else if(map[x][y].cost) return map[x][y].cost; else { if(str[x]==str[y]) { map[x][y].cost=fun(x+1,y-1); map[x][y].fz(3,x+1,y-1); } else { int temp1=fun(x,y-1)+1,temp2=fun(x+1,y)+1; if(temp1>temp2) { map[x][y].cost=temp2; map[x][y].fz(2,x+1,y); } else { map[x][y].cost=temp1; map[x][y].fz(1,x,y-1); } } return map[x][y].cost; }}int print_ans(int x,int y){ if(x==y) { L[le++]=str[x]; return 1; } if(map[x][y].cmd==1) { L[le++]=str[y]; R[ri++]=str[y]; } else if(map[x][y].cmd==2) { L[le++]=str[x]; R[ri++]=str[x]; } else if(map[x][y].cmd==3) { L[le++]=str[y]; R[ri++]=str[y]; if(x==y-1)return 1; } if(print_ans(map[x][y].x,map[x][y].y)) return 1; return 0;}
- uva 10453 Make Palindrome
- UVA 10453 Make Palindrome
- UVA 10453 Make Palindrome
- UVA 10453 Make Palindrome
- UVA - 10453 Make Palindrome
- UVa:10453 Make Palindrome
- uva 10453 - Make Palindrome
- UVA 10453 - Make Palindrome
- UVA - 10453 Make Palindrome
- UVA - 10453 Make Palindrome
- uva 10453 Make Palindrome
- UVa 10453 - Make Palindrome
- uva 10453 - Make Palindrome(dp)
- Make Palindrome - UVa 10453 dp
- UVa 10453 - Make Palindrome 字符串dp
- UVA 10453 Make Palindrome(DP)
- uva 10453 Make Palindrome(DP)
- UVA 10453 Make Palindrome(区间简单DP)
- 解决jquery.XYTipsWindow.2.8.js关闭后父窗体输入框不能进行编辑
- python自动化单元测试框架 PyUnit
- mvn dependency logback
- 进制互转
- 数据量10亿级别的数据库表,多行存储成一行、一列扩展成多列之数据优化及迁移方案(一)
- uva 10453 Make Palindrome
- phpredis使用方法
- 职场的18个心得
- 制作并使用静态类库(Static Library)
- OK6410根文件系统制作
- C++ 模板基础谈
- 自定义 mrtg 数据
- mvn dependency mongodb maven dependency mongodb
- 从android系统图库中取图片的代码