死循环是什么回事?在线求教
查看原帖
死循环是什么回事?在线求教
244597
kabout楼主2020/8/21 15:06
#include<bits/stdc++.h>
using namespace std;
int k,s,f[41][10001];
string a;
vector<string>v;
int count(int s,int e)
{
	int cnt=0;
	string b;
	for(int i=s;i<=e;i++)
	{
		int tmp=0;
		for(int j=i;j<=e;j++)
		{
			b=a.substr(i,j-i+1);
			for(int c=1;c<=s;c++)
				if(v[c]==b)tmp=1;	
		}
		cnt+=tmp;
	}
	return cnt;
}
int main()
{
	cin>>k>>s>>a;
	v.resize(s+1);
	for(int i=1;i<=s;i++)cin>>v[i];
	for(int i=1;i<=k;i++)//第几个部分 
		for(int j=i;j<=a.size();j++)//第几个字符 
			for(int l=i-1;l<j;l++)//上一次是第几个字符 
				f[i][j]=max(f[i-1][l]+count(l,j-1),f[i][j]);
	cout<<f[k][a.size()];			
	return 0;
}
2020/8/21 15:06
加载中...