多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > UVA 10739 String to Palindrome(DP)

UVA 10739 String to Palindrome(DP)

來源:程序員人生   發布時間:2014-12-18 08:38:47 閱讀次數:2802次

In this problem you are asked to convert a string into a palindrome with minimum number of operations. The operations are described below:

 

Here you’d have the ultimate freedom. You are allowed to:

  • Add any character at any position
  • Remove any character from any position
  • Replace any character at any position with another character

Every operation you do on the string would count for a unit cost. You’d have to keep that as low as possible.

 

For example, to convert “abccda” you would need at least two operations if we allowed you only to add characters. But when you have the option to replace any character you can do it with only one operation. We hope you’d be able to use this feature to your advantage.

 

Input

The input file contains several test cases. The first line of the input gives you the number of test cases, T (1≤T≤10). Then T test cases will follow, each in one line. The input for each test case consists of a string containing lower case letters only. You can safely assume that the length of this string will not exceed 1000 characters.

 

Output

For each set of input print the test case number first. Then print the minimum number of characters needed to turn the given string into a palindrome.

 

Sample Input                               Output for Sample Input

6
tanbirahmed
shahriarmanzoor
monirulhasan
syedmonowarhossain
sadrulhabibchowdhury
mohammadsajjadhossain

Case 1: 5

Case 2: 7

Case 3: 6

Case 4: 8

Case 5: 8

Case 6: 8

題意:有3種操作,每種操作花費1單位花費。問最少的花費

區間DP:求最小花費。

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> typedef long long LL; using namespace std; #define REPF( i , a , b ) for ( int i = a ; i <= b ; ++ i ) #define REP( i , n ) for ( int i = 0 ; i < n ; ++ i ) #define CLEAR( a , x ) memset ( a , x , sizeof a ) const int INF=0x3f3f3f3f; const int maxn=1100; int dp[maxn][maxn]; char str[maxn]; int t; int main() { int cas=1; scanf("%d",&t); getchar(); while(t--) { gets(str+1); int len=strlen(str+1); CLEAR(dp,INF); for(int i=1;i<=len;i++) { if(str[i]==str[i+1]) dp[i][i+1]=0; dp[i][i]=0; } for(int l=1;l<=len;l++) { for(int i=1;i+l<=len;i++) { int j=i+l; if(str[i]==str[j]) dp[i][j]=min(dp[i][j],dp[i+1][j⑴]); else { dp[i][j]=min(dp[i+1][j],dp[i][j⑴])+1; dp[i][j]=min(dp[i][j],dp[i+1][j⑴]+1); } } } printf("Case %d: ",cas++); printf("%d ",dp[1][len]); } return 0; }




生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久伊人五月天 | 樱花aⅴ一区二区三区四区 影视精品网站入口 | 欧美1级| 国产精品网站在线观看 | 亚洲另类图片专区 | 亚洲国产精品自产拍在线播放 | 国产精品久久久久久久久 | jyzz日本| 亚洲精品一区二区三区中文字幕 | 亚洲午夜伦理 | 成人精品| 免费h视频网站 | aa级黄色大片 | 777欧美| 操人网| 国产91嫩草精品 | 国产欧美日韩在线观看一区二区三区 | 国产美女无遮挡免费视频 | 亚洲欧美日韩国产精品一区 | 中文字幕一区二区三区久久网站 | 日韩国产在线观看 | 在线观看日本永久免费视频 | 亚洲丰满熟妇毛片在线播放 | 欧美成成人免费 | 国产成人免费不卡在线观看 | 国产高清一区二区三区视频 | 在线观看视频一区二区 | 99视频精品免视3 | 久久精品久久精品久久精品 | 免费国产h视频在线观看 | 日本成年一区久久综合 | a黄色片 | 日本无套 | 淫www| 日本护士xxxx| 激情视频在线观看 | 日韩欧美成末人一区二区三区 | 99久久这里只精品麻豆 | 国产一区二区三区在线 | freexxxhd性欧美| 亚洲a级毛片 |