AT_abc403_c [ABC403C] 403 Forbidden
csdn 传送门
博客园传送门(不建议!!!)
这个东西其实轻轻松松就能想到。
首先我们都能想到的是把这
然后这道题就变成了:一共有 Yes 和 No(这个含义不必多说,具体见题目)。每个元素可以出现在多个集合。
但是接下来问题来了,看着它的数据范围,你总不可能所有
这个其实也很好解决,再整个集合存所有
为了省事,我们将这个集合的编号定义为
于是,我们的思路就十分明确。下面就不必多说了,直接上代码吧 qwq:
//码风+实现方法可能有点儿抽象,不喜勿喷。
#include<bits/stdc++.h>
using namespace std;
const int N=2*1e5+10;
int n,m,q;
vector<int>mp[N];
int x,y;
int main()
{
cin>>n>>m>>q;
while(q--)
{
int op;
cin>>op;
if(op==1)
{
cin>>x>>y;
if((std::find(mp[y].begin(),mp[y].end(),x))==mp[y].end())
{
mp[y].push_back(x);
}
}
else if(op==2)
{
cin>>x;
if((std::find(mp[m+1].begin(),mp[m+1].end(),x))==mp[m+1].end())
{
mp[m+1].push_back(x);
}
}
else
{
cin>>x>>y;
if((std::find(mp[y].begin(),mp[y].end(),x)==mp[y].end())&&(std::find(mp[m+1].begin(),mp[m+1].end(),x)==mp[m+1].end()))
{
cout<<"No"<<endl;
}
else
{
cout<<"Yes"<<endl;
}
}
}
return 0;
}