社区讨论

基本尺取法 蒟蒻求助

P1381单词背诵参与者 3已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo22wn1o
此快照首次捕获于
2023/10/23 07:07
2 年前
此快照最后确认于
2023/11/03 07:28
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    register int x=0,f=1;
    char c=getchar();
    while(c<'0'||c>'9')
    {
        if(c=='-') f=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9')
    {
        x=(x<<3)+(x<<1)+(c^48); 
        c=getchar();
    }
    return x*f;
}
string word[1005],pas[100005];
map<string,int> mp,now;
int main()
{
	int n=read();
	for(int i=1;i<=n;i++) getline(cin,word[i]),mp[word[i]]=1;
	int m=read();
	for(int i=1;i<=m;i++) getline(cin,pas[i]);
	int maxc=-1,minl=99999999,l=1,cnt=0;
	for(int r=1;r<=m;r++)
	{
		if(mp[pas[r]] && now[pas[r]]==0)cnt++;
		now[pas[r]]++;
		while(!mp[pas[l]] || now[pas[l]]>1) 
		{
			if(now[pas[l]]>1) now[pas[l]]--;
			l++;
		} 
		//cout<<maxc<<' '<<minl<<endl;
		if(maxc<cnt) maxc=cnt,minl=r-l+1;
		if(maxc==cnt)
			minl=min(minl,r-l+1);
	}
	cout<<maxc<<'\n'<<minl;
	return 0;
}

样例过了,自己的几组数据也过了

回复

7 条回复,欢迎继续交流。

正在加载回复...