【BZOJ4602】齿轮,带权并查集
来源:互联网 发布:2016年汽车销售数据 编辑:程序博客网 时间:2024/06/05 11:04
Time:2016.06.09
Author:xiaoyimi
转载注明出处谢谢
传送门
这段时间在狂补文化课,10天就碰过一次键盘,结果回来发现连快速读入都敲不对了233
接下来一段时间仍保持这种状态了……
思路:
R2唯一可做的一道题?
在学校弄了个30分做法
回来一交A了……
感觉分解质因数的方法高大上啊有木有
询问判断:如果u,v在同一集合里直接判断即可,反之将两者合并
合并思路:如果我们要合并u,v两个元素所在集合且
find操作:先让
(以上一些式子的推导很简单,我就不列过程了)
注意:
暂无
代码:
#include<cstdio>#include<iostream>#include<cstring>#include<cmath>using namespace std;int T,n,m;int fa[1003];double sum[1003];int in(){ int t=0;char ch=getchar();bool f=0; while (ch>'9'||ch<'0') f=(ch=='-'),ch=getchar(); while (ch>='0'&&ch<='9') t=(t<<1)+(t<<3)+ch-48,ch=getchar(); return f?-t:t;}int find(int x){ if (x==fa[x]) return x; int t=fa[x]; fa[x]=find(t); sum[x]*=sum[t]; return fa[x];}void work(){ n=in();m=in(); for (int i=1;i<=n;i++) fa[i]=i,sum[i]=1; int x,y,u,v;bool flag=0; while (m--) { u=in();v=in();x=in();y=in(); int f1=find(u),f2=find(v); if (f1==f2) if (fabs(sum[u]/sum[v]-1.0*x/y)>1e-9) flag=1; else; else fa[f1]=f2, sum[f1]=sum[v]*x/(sum[u]*y); } if (flag) puts("No"); else puts("Yes");}main(){ T=in(); for (int i=1;i<=T;i++) printf("Case #%d: ",i),work();}
0 0
- 【BZOJ4602】齿轮,带权并查集
- [SDOI2016] BZOJ4602 齿轮-dfs-带权并查集-数论逆元-质因数分解
- [BZOJ4602][Sdoi2016]齿轮(加权并查集+分解质因数)
- [BZOJ4602][Sdoi2016]齿轮(加权并查集)
- ZOJ 3789 齿轮操作 带权并查集
- BZOJ4602 [Sdoi2016]齿轮
- 【bzoj4602】【SDOI2016】【齿轮】【dfs】
- 【bzoj4602】[Sdoi2016]齿轮 dfs
- BZOJ4602: [Sdoi2016]齿轮
- bzoj4602 [Sdoi2016]齿轮
- bzoj4602: [Sdoi2016]齿轮
- bzoj 4602: [Sdoi2016]齿轮(加权并查集)
- BZOJ[4602] [Sdoi2016]齿轮 加权并查集
- 并查集--带权
- 带权并查集
- 带权并查集
- 带权并查集
- 带权并查集
- Genymotion安卓模拟器及离线使用方法
- Linux文件的复制、删除和移动命令
- 电商之梳理UML相关知识-------建模使用
- C++之派生类的拷贝构造与赋值运算符重载
- Android 贝赛尔曲线实现自定义button 果冻-压下形变,抬起后弹弹的效果
- 【BZOJ4602】齿轮,带权并查集
- 初探66AK2x
- Linked List Cycle
- 原型模式深复制浅复制
- 机房收费系统总结(四)
- DatePicker&&TimePicker In DialogFragment
- 史上最奇葩的5个编程语言,有个甚至是模拟奶牛
- 排序算法总结
- bzoj 1231 [Usaco2008 Nov]mixup2 混乱的奶牛