博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
带权并查集
阅读量:5226 次
发布时间:2019-06-14

本文共 1728 字,大约阅读时间需要 5 分钟。

突然发现自己不知道这是什么东西。。。

感觉好像就是在并查集的基础上多维护了一些有用的量

然后做了一道大水题

poj 1182 食物链

题解可见 写的挺清楚

我就插个代码在这

1 //poj 1182 2  3 ll read() 4 { 5     ll x=0,f=1; 6     char ch=getchar(); 7     while(ch<'0'||ch>'9') 8     { 9         if(ch=='-')f=-1;10         ch=getchar();11     }12     while(ch>='0'&&ch<='9')13     {14         x=x*10+ch-'0';15         ch=getchar();16     }17     return x*f;18 }19 20 void print(ll x)21 {22     if(x<0)putchar('-'),x=-x;23     short a[20]= {},sz=0;24     while(x>0)a[sz++]=x%10,x/=10;25     if(sz==0)putchar('0');26     for(ll i=sz-1; i>=0; i--)putchar('0'+a[i]);27 }28 29 const ll mod=1e9+7;30 31 int n,k;32 int fa[111111];33 int sy[111111];34 35 int fnd(int x){36     if(fa[x]==x) return x;37     else{38         int nw=fa[x];39         fa[x]=fnd(fa[x]);40         sy[x]=(sy[nw]+sy[x])%3;41         return fa[x];42     }43 }44 45 bool check(int tp,int x,int y){46     if(x>n || y>n) return 0;47     if(tp==1 && x==y) return 0;48     int fx=fnd(x),fy=fnd(y);49     if(fx==fy)50         if((sy[x]-sy[y]+3)%3==tp) return 1;51         else return 0;52         53     return 1;54 }55 56 void uni(int tp,int x,int y){57     int fx=fnd(x),fy=fnd(y);58     if(fx!=fy){59         fa[fx]=fy;60         sy[fx]=(sy[y]-sy[x]+tp+3)%3;61     }62 }63 64 int main(){65     #ifdef LZT66         freopen("in","r",stdin);67     #endif68     n=read();k=read();69     70     for(int i=1;i<=n;i++)71         fa[i]=i;72     73     int ans=0;74     while(k--){75         int tp=read(),x=read(),y=read();76         tp--;77         if(check(tp,x,y))78             uni(tp,x,y);79         else80             ans++;81     }82     83     print(ans);84     puts("");85     return 0;86 }
View Code

 

转载于:https://www.cnblogs.com/nflslzt/p/8681010.html

你可能感兴趣的文章
C#编程时应注意的性能处理
查看>>
Fragment
查看>>
比较安全的获取站点更目录
查看>>
苹果开发者账号那些事儿(二)
查看>>
[NOIP2012TG] 洛谷 P1080 国王游戏
查看>>
使用C#交互快速生成代码!
查看>>
UVA11374 Airport Express
查看>>
P1373 小a和uim之大逃离 四维dp,维护差值
查看>>
NOIP2015 运输计划 树上差分+树剖
查看>>
P3950 部落冲突 树链剖分
查看>>
有道词典_每日一句_2019/07
查看>>
读书_2019年
查看>>
读书汇总贴
查看>>
微信小程序 movable-view组件应用:可拖动悬浮框_返回首页
查看>>
MPT树详解
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
关于ajax回调数据类型为Json,如何获得他的值
查看>>
前端各种mate积累
查看>>
jQuery 1.7 发布了
查看>>