马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<bits/stdc++.h>
- using namespace std;
- const int N=5e4+10;
- int p[N],d[N];
- int find(int x)
- {
- if(p[x]!=x)
- {
- int t=find(p[x]);
- d[x]+=d[p[x]];
- p[x]=t;
- }
- return p[x];
- }
- int main()
- {
- int n,k,res=0;
- cin>>n>>k;
- for(int i=1;i<=n;i++)p[i]=i;
- while(k--)
- {
- int s,x,y;
- cin>>s>>x>>y;
- if(x>n||y>n)res++;
- else{
- if(s==1)
- {
- if(find(x)==find(y)&&(d[x]-d[y])%3)res++;
-
- else if(find(x)!=find(y)) {
-
- d[find(x)]=d[y]-d[x];p[find(x)]=find(y);
- }
- }
- else{
- if(find(x)==find(y)&&(d[x]-d[y]-1)%3)res++;
- else if(find(x)!=find(y)){
-
- d[find(x)]=d[y]-d[x]+1; p[find(x)]=find(y);
- }
- }
-
- }
- }
- cout<<res;
- return 0;
- }
复制代码 我如果不消
- int px=find(x),py=find(y);
复制代码 就会wrong answer。。。
好难啊。。。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |