Longest Prefix最长前缀
dp
直接贴代码了...
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <algorithm> 5 #include <cstring> 6 #include <string> 7 #include <set> 8 using namespace std; 9 set<string>s; 10 string p; 11 int main() 12 { 13 freopen("prefix.in","r",stdin); 14 freopen("prefix.out","w",stdout); 15 s.clear(); 16 int maxlen=0; 17 cin>>p; 18 int f[200100]={false}; 19 f[0]=true; 20 int ans=0; 21 int len; 22 while(p!=".") 23 { 24 len=p.length(); 25 maxlen=max(maxlen,len); 26 s.insert(p); 27 cin>>p; 28 } 29 p=""; 30 char c[200100]; 31 while(scanf("%s",&c)!=EOF) 32 p=p+string(c); 33 len=p.length(); 34 p=" "+p; 35 for(int i=1;i<=len;i++) 36 for(int j=i;j>=i-maxlen+1;j--) 37 { 38 if(j<1) 39 break; 40 string t=p.substr(j,i-j+1); 41 if(s.count(t)) 42 { 43 f[i]=(f[j-1])||(f[i]); 44 if((i>ans)&&(f[i])) 45 ans=i; 46 if(f[i]) 47 break; 48 49 } 50 } 51 printf("%d\n",ans); 52 }
zerosum
dfs ..就是字符串比较烦......
Money Systems货币系统
完全背包.....
Controlling Companies 控制公司
我打的很暴力 直接暴力枚举了 .... 差点超时 就是不停更新维护 他们之间互相控制的数组.....