uva 10739 String to Palindrome
2013-05-14 20:26
375 查看
import java.math.BigInteger; import java.util.*; public class Main{ public static void dp(String s,int cases){ int table[][] = new int[s.length()][s.length()]; for(int i=0;i<s.length();i++){ for(int j=i+1;j<s.length();j++) table[i][j] = 9999999; } for(int gap = 1;gap<s.length();gap++){ for(int i=0;i+gap<s.length();i++){ int j = i+gap; if(s.charAt(i)==s.charAt(j)){ table[i][j] = table[i+1][j-1]; }else{ table[i][j] = Math.min(table[i+1][j]+1,Math.min(table[i+1][j-1]+1,table[i][j-1]+1)); } } } System.out.println("Case "+cases+": "+table[0][s.length()-1]); } public static void main (String [] args) throws Exception { Scanner scan = new Scanner(System.in); int cases = scan.nextInt(); for(int i=0;i<cases;i++){ String s = scan.next(); dp(s,i+1); } } }
这两天状态不好,生活工作上遇到一些困难。准确的说不是一点,是一个比较大的问题,但是对我目前的生活没有太大的影响,是一个长期的问题。
所以生活还是继续下去,A题也继续下去。但是问题始终还是存在的,问题就在那里,影响着我的心理,所以写题目的状态也受到了影响。
不管怎么样吧,都得硬着头皮上,我需要胜利,彻底的胜利。希望我不会让我自己失望吧。
这题做的还不错,写加思考20分钟 1Y
简单介绍一下思维,假设我们已经有一个 Palindrome的字符串了, 这个字符串从i开始j结束,记做S[i][j].
那么对于增长一位的新字符串s[i][j+1], 有以下几种情况。
1. 如果第j+1位的字符和第i位相等,那么就缩小范围,s[i][j+1] = s[i+1][j];
2.如果不等,那么就是三种状态,增加,删除和改变。分别做坐标的改变就是了。
其实对于新手,我认为其实解空间的构造是比较难想的,但是这个解空间属于经典dp里面的一类,所以经验多了应该能想到。
顺带说一句poj的3280,那是一个增强版本的这个题目,简单的来说就是增加,删除和修改花费的代价是不一样的,然后求最小代价。
其实也不难,就是这里都是加1,那个题目加上不同的代价就是了。~~~
相关文章推荐
- UVA 10739 String to Palindrome
- Uva - 10739 - String to Palindrome
- String to Palindrome - UVa 10739 dp
- UVA 10739 String to Palindrome (区间dp)
- UVA_10739_StringToPalindrome
- 区间DP UVA 10739 String to Palindrome
- UVA - 10739 String to Palindrome 区间DP
- UVa:10739 String to Palindrome
- uva 10739 String to Palindrome (dp)
- UVa 10739 - String to Palindrome
- UVa 10739 String to Palindrome (DP)
- UVa 10739 - String to Palindrome 字符串dp
- UVA10739 - String to Palindrome
- UVA 10739 String to Palindrome
- uva 10739 - String to Palindrome(区间dp)
- UVa 10739 - String to Palindrome 字符串dp
- UVa 10739. String to Palindrome
- UVA 10739 String to Palindrome(DP)
- uva_10739 - String to Palindrome (普通DP)
- UVa 10739 - String to Palindrome