题目大意:给出一个长字符串,问最长的前缀,使得这个前缀能用给出的一些元素组合而成
思路:暴力dp,dp[i]表示长度为i的前缀能否被表示
1 /*{ 2 ID:a4298442 3 PROB:prefix 4 LANG:C++ 5 } 6 */ 7 #include<iostream> 8 #include<fstream> 9 #include<cstring> 10 #include<algorithm> 11 #define maxn 109 12 using namespace std; 13 ifstream fin("prefix.in"); 14 ofstream fout("prefix.out"); 15 //#define fin cin 16 //#define fout cout 17 int dp[200009]; 18 char premitive[maxn*3][maxn],ch[200009]; 19 int check(int x,int y,int totle) 20 { 21 char temp[maxn],h=0; 22 for(int i=x;i<=y;i++) 23 { 24 temp[++h]=ch[i]; 25 } 26 temp[h+1]='