Thursday, 27 July 2017

Lightoj 1025 - The Specials Menu

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. long long int a[201][201];
  4. int main()
  5. {
  6.     long long int ts, cs = 1;
  7.     cin>>ts;
  8.     while(ts--){
  9.     string s;
  10.     cin>>s;
  11.     long long int l = s.length();
  12.     for(long long int i = 0; i <=l; i++){
  13.         a[i][i] = 1;
  14.     }
  15.     for(long long int len = 2; len <=l; len++){
  16.         for(long long int i = 0; s[i+len-1]; i++){
  17.             long long int j = i+len-1;
  18.             a[i][j] = a[i+1][j] + a[i][j-1]-a[i+1][j-1];
  19.             if(s[i]==s[j]){
  20.                 a[i][j] += a[i+1][j-1] + 1;
  21.             }
  22.         }
  23.     }
  24.     /*
  25.     for(int i = 0; i <l; i++){
  26.         for(int j = 0; j <l; j++){
  27.             cout<<a[i][j]<<" ";
  28.         }
  29.         cout<<endl;
  30.     }
  31.     */
  32.     printf("Case %lld: %lld\n", cs++,a[0][l-1]);
  33.     }
  34.     return 0;
  35. }

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...