- 洛谷P1470 处理字符串时,下标从1开始比较好
-
const int N=2e5+10; set<string> st[210]; int f[N]; void solve() { string s; int maxx=0; while (cin>>s) { if(s==".")break; int n=s.length(); maxx=max(maxx,n); st[n].insert(s); } // cin>>s; s=""; string sss; while(cin>>sss) { s+=sss; } s="."+s; int len=s.size(); int ans=0; f[0]=1; for(int i = 1;i<=len;i++) { for(int j = i-1;j>=i-maxx && j>=0;j--) { string ss=s.substr(j+1,i-j); if(f[j] && st[i-j].count(ss)) { f[i]=1; ans=i; break; } } } cout<<ans; }
2023.10.14
最新推荐文章于 2024-07-24 20:44:05 发布