Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
why tle?#include <iostream> #include <sstream> #include <string> #include <vector> #include <set> #include <map> #include <algorithm> #include <cstdio> #include <cstdlib> #include <cmath> #include <math.h> #include <string.h> #include <stdlib.h> using namespace std; #define REP(i, n) for(int i = 0; i<(n); i++) #define abs(a) ((a) >= 0 ? (a) : -(a)) #define inf 999999999 typedef vector<int> VI; typedef vector<string> VS; typedef long long i64; typedef unsigned long long u64; char a[1000]; char b[1000]; int dp[1000][1000]; int na, nb; int go(int pos1, int pos2) { if (dp[pos1][pos2] != -1) return dp[pos1][pos2]; if (pos1 == 0 && pos2 == 0) return dp[0][0] = 0; int res = 0; for (int i = pos2-1; i >= 0; i--) { for (int j = pos1-1; j >= 0; j--) { if (b[i] == a[j]) { int tmp = 1+go(j, i); if (tmp > res) res = tmp; } } } // printf("%d, %d %d\n", pos1, pos2, res); return dp[pos1][pos2] = res; } int main() { while(1) { cin>>a>>b; na = strlen(a); nb = strlen(b); memset(dp, -1, sizeof(dp)); printf("%d\n", go(na, nb)); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator