食物链的迷惑

打印 上一主题 下一主题

主题 1785|帖子 1785|积分 5355

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N=5e4+10;
  4. int p[N],d[N];
  5. int find(int x)
  6. {
  7.     if(p[x]!=x)
  8.     {
  9.         int t=find(p[x]);
  10.         d[x]+=d[p[x]];
  11.         p[x]=t;
  12.     }
  13.     return p[x];
  14. }
  15. int main()
  16. {
  17.     int n,k,res=0;
  18.     cin>>n>>k;
  19.     for(int i=1;i<=n;i++)p[i]=i;
  20.     while(k--)
  21.     {
  22.         int s,x,y;
  23.         cin>>s>>x>>y;
  24.         if(x>n||y>n)res++;
  25.         else{
  26.             if(s==1)
  27.         {
  28.             if(find(x)==find(y)&&(d[x]-d[y])%3)res++;
  29.    
  30.             else if(find(x)!=find(y)) {
  31.                
  32.                 d[find(x)]=d[y]-d[x];p[find(x)]=find(y);
  33.             }
  34.         }
  35.         else{
  36.             if(find(x)==find(y)&&(d[x]-d[y]-1)%3)res++;
  37.             else if(find(x)!=find(y)){
  38.                
  39.                 d[find(x)]=d[y]-d[x]+1; p[find(x)]=find(y);
  40.             }
  41.         }
  42.             
  43.         }
  44.     }
  45.     cout<<res;
  46.     return 0;
  47. }
复制代码
我如果不消
  1. int px=find(x),py=find(y);
复制代码
就会wrong answer。。。

 好难啊。。。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

数据人与超自然意识

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表