题解 | 代理服务器

#include <bits/stdc++.h>
using namespace std;

struct cp {
	string x;
	int f;
};

int isAU(cp a[],int n) {
	for(int i=0; i<n; i++) {
		if(a[i].f==0)return 0;
	}
	return 1;
}


int main() {
	int n,m;
	while(cin>>n) {
		cp a[n];
		string s;
		for(int i=0; i<n; i++) {
			cin>>a[i].x;
			a[i].f=0;
		}
		cin>>m;
		int ans=0;
		for(int i=0; i<m; i++) {
			cin>>s;
			for(int i=0; i<n; i++) {
				if(a[i].x==s)a[i].f=1;
				if(isAU(a,n)==1) {
					for(int i=0; i<n; i++) {
						a[i].f=0;
					}
					a[i].f=1;
					ans++;
				}
			}

		}
		ans=ans==m?-1:ans;
		cout<<ans<<endl;
	}
}

这个题目对于过判定的规则没写清楚,根据评论区发现的规则如上,代理服务器的地址被全部访问到的时候,关闭此次访问,进入下一次,并且最后一次访问计入下一次的访问中,也就是最后一个关闭的端口下一次也是关闭的,然后按照这个逻辑去写就可以了,我这里用另一个struct,你也可以用map,更快,这个方便c

全部评论

相关推荐

迷茫的大四🐶:价格这么低都能满了?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务