求条
查看原帖
求条
827873
abc1856896楼主2024/6/26 07:41
#include<bits/stdc++.h>
using namespace std;
string s;
int dp[2000005];
set<string> st[205],maxx;
signed main(){
	string sk;
	while(cin>>sk){
		if(sk==".") break;
		st[sk.size()].insert(sk);
		int ttt=sk.size();
		maxx=max(maxx,int(sk.size()));
	} 
	while(cin>>sk){
		s=s+sk;
	}
	dp[0]=1;
	for(int i=0;i<s.size();i++){
		for(int j=minn(i,m);j>=0;j--){
			string t=s.substr(i-j+1,j);
			if(st[t.size()].count(t)==1 && dp[i-j]==1){
				dp[i]=1;
				break;
			}
		}
	}
	for(int i=s.size()-1;i>=0;i--){
		if(dp[i]) {
			cout<<i+1;
			return 0;
		}
	}
	return 0;
}

CE 了,不知到为什么

2024/6/26 07:41
加载中...