Thursday, 27 July 2017

Lightoj 1033 - Generating Palindromes

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int dp[201][201];
  4. int l;
  5. string s;
  6. int go(int i, int j){
  7.     if(i>j){
  8.         return 0;
  9.     }
  10.     if(dp[i][j]!= -1){
  11.         return dp[i][j];
  12.     }
  13.     if(s[i] == s[j]){
  14.         return go(i+1, j-1);
  15.     }
  16.      dp[i][j] = 1+min(go(i+1,j), go(i, j-1));
  17.      return dp[i][j];
  18. }
  19. int main()
  20. {
  21.     int ts, cs = 1;
  22.     cin>>ts;
  23.     while(ts--){
  24.     memset(dp, -1sizeof(dp));
  25.     cin>>s;
  26.     l = s.length();
  27.     printf("Case %d: %d\n", cs++, go(0, l-1));
  28.     }
  29.     return 0;
  30. }

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...