您的位置:首页 > 其它

九度[1082]代理服务器

2016-01-31 20:08 246 查看
# include<iostream>
# include<string>
# include<cstring>
using namespace std;
int main(){
int n=0,m=0;
string a[1000],b[5000];
int pos[5000];
bool f[5000];
while(cin>>n){
int i=0,j=0;
for(i=1;i<=n;i++)
cin>>a[i];
cin>>m;
for(i=1;i<=m;i++)
cin>>b[i];
memset(pos,0,sizeof(pos));
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
if(b[i]==a[j]){
pos[i]=j;
break;
}
}
int cur=-1;
int k=0;
int last=-1;
for(i=1;i<=m;i++)
if(pos[i]!=0) break;
if(i<=m && n==1)
{
cout<<"-1"<<endl;
continue;
}
for(i=1;i<=m;i++)
{
memset(f,false,sizeof(f));
int cnt=0;
for(j=i;j<=m;j++){
//cout<<"pos"<<j<<pos[j]<<" ";
if(pos[j])
{
if(f[pos[j]]==false)
{
f[pos[j]]=true;
cnt++;
if(cnt==n-1) last=pos[j];
if(cnt==n && pos[j]!=cur)
{
cur=pos[j];
k++;
i=j-1;
break;
}
else if(cnt==n)
{
if(last==-1) break;
cur=last;
i=j-2;
k++;
break;
}
}
}
}
}
cout<<k<<endl;
}
return 0;
}


动态规划问题 好久才ac 再看看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: