[HNOI2005]狡猾的商人(并查集维护前缀和)
来源:互联网 发布:php 二进制转字符串 编辑:程序博客网 时间:2024/05/20 18:00
并查集维护前缀和,实际上就是一个差分约束系统,但是这里面只有“=” 罢了,所以可以用并查集做
感觉很多题,自己做都没有恰当的思路,思路都很乱,并查集真的很灵活
val表示从到根节点相差多少。如果在一个集合里,通过减取差,即可知道他们之间的距离
不在一个集合的话,就把他们连起来
我想,以后做题,没有必要用最优解,我可以尝试用自己的方法来做,实在不行再看题解!!
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int fa[209],val[209],n,m;int find(int x){if (x==fa[x]) return x;int k=find(fa[x]);val[x]+=val[fa[x]];return fa[x]=k;}int main(){int T;scanf("%d",&T);int s,t,v;while(T--){scanf("%d%d",&n,&m);for (int i=0;i<=n+1;i++) fa[i]=i;memset(val,0,sizeof(val));bool o=true;for (int i=1;i<=m;i++){scanf("%d%d%d",&s,&t,&v);//多组数据要读入完!! int fs=find(s-1),ft=find(t);if (fs==ft) if (val[s-1]-val[t]!=v) o=false;//所以这里不能有break; if (fs!=ft){fa[fs]=ft;val[fs]=val[t]+v-val[s-1];}}if (o) printf("true\n");else printf("false\n");}return 0;}
0 0
- [HNOI2005]狡猾的商人(并查集维护前缀和)
- BZOJ 1202: [HNOI2005]狡猾的商人 并查集维护前缀和
- [BZOJ1202][HNOI2005]狡猾的商人(并查集+前缀和)
- bzoj 1202: [HNOI2005]狡猾的商人(并查集+前缀和)
- [BZOJ 1202][HNOI2005]狡猾的商人(并查集+前缀和)
- 【bzoj 2102】 [HNOI2005]狡猾的商人 带权并查集维护区间和
- BZOJ-1202 狡猾的商人 并查集+前缀和
- [BZOJ1202][HNOI2005][并查集]狡猾的商人
- 【BZOJ1202】【HNOI2005】狡猾的商人 并查集
- BZOJ 1202 HNOI2005 狡猾的商人 并查集
- BZOJ1202 [HNOI2005]狡猾的商人(并查集)
- 【bzoj1202】 HNOI2005狡猾的商人 并查集
- bzoj 1202 [HNOI2005]狡猾的商人|并查集
- BZOJ1202: [HNOI2005]狡猾的商人 并查集
- 1202: [HNOI2005]狡猾的商人 带权并查集
- [bzoj1202][HNOI2005]狡猾的商人[并查集]
- 1202: [HNOI2005]狡猾的商人 带权并查集
- (bzoj 1202: [HNOI2005]狡猾的商人)<并查集>
- storm安装
- 翻转行为
- 参与比取胜更重要
- objc runtime 动态增加属性
- 新学的vim命令记录
- [HNOI2005]狡猾的商人(并查集维护前缀和)
- ORACLE 更新推荐人数
- 51nod1174区间最大数(RMQ)
- 关于管道的一些知识
- android Xml控件属性
- 代码:编写一个简单的字符设备驱动——创建多个同类型设备
- JAVA之旅(二十四)——I/O流,字符流,FileWriter,IOException,文件续写,FileReader,小练习
- 保护模式学习笔记:LDT
- 转向ARC的说明——翻译Apple官方文档