题解 | #代理服务器#
代理服务器
https://www.nowcoder.com/practice/1284469ee94a4762848816a42281a9e0
#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; set<string > s,pre;//s服务器,pre访问地址 while(n--){ string t; cin>>t; s.insert(t); } int f1=0; if(s.size()==1) f1=1; cin>>n; int res=0; //什么时候必须切服务器?轮到最后一个没遇到的ip时(在此之前都可用非这些ip的某服务器) while(n--) { string t; cin>>t; if(f1&&t==*s.begin()){ cout<<-1; return 0; } if(pre.count(t))continue; else { if(s.count(t))//此ip的服务器暂时不用 { pre.insert(t); if(pre.size()==s.size())//都出现了,必须用掉一个ip { res++; pre.clear(); pre.insert(t); } } }; } cout<<res; return 0; } // 64 位输出请用 printf("%lld")