বুধবার, ১৮ জানুয়ারী, ২০১৭

UVA 11151 Longest Palindrome

#include<bits/stdc++.h>
using namespace std;
long dp[1001][1001];
string s;
long call(long i,long j)
{
    if(i>j)return 0;
    if(i==j)return 1;
    if(dp[i][j]!=-1)return dp[i][j];
    long res=0;
     if(s[i]==s[j])
        res=call(i+1,j-1)+2;
    else
        res=max(call(i+1,j),call(i,j-1));
    return dp[i][j]=res;
}
int main()
{
    long cs,tst,p,l;
    cin>>cs;
    getchar();
    for(tst=0;tst<cs;tst++)
    {
        memset(dp,-1,sizeof(dp));
        getline(cin,s);
        l=s.size()-1;
        p=call(0,l);
        cout<<p<<endl;
    }
    return 0;
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...