没怎么用过bitset,第一次见到用法,写一下熟悉熟悉。
无论何时,学习的脚步也不能停下呀,不论结果如何。
Just try my best.
题目链接:https://acm.ecnu.edu.cn/problem/3337/
关同步:ios::sync_with_stdio(false)
(有时候会加cin.tie(0))
bitset <>后面这个应该是位数。表示的二进制位为n位,
默认的构造函数将其初始为全0
g[N]表示有N个人了。
ans用来存两个bitset与后的结果。
ans.count()可以直接得出bitset中为1的个数
#include<bits/stdc++.h>
using namespace std;
const int N = 4e4+10;
int n,m,q,s,t;
bitset<N> g[N],ans;
int main()
{
ios::sync_with_stdio(false);
int n,m;
cin>>n>>m;
int u,v;
for(int i=0;i<m;i++)
{
cin>>u>>v;
g[u][v] = g[v][u] = 1;
}
int q;
cin>>q;
//query
while(q--)
{
cin>>u>>v;
ans = bitset<N>(g[u]&g[v]);
cout<<ans.count()<<endl;
}
return 0;
}