BZOJ4602: [Sdoi2016]齿轮
来源:互联网 发布:pc读取西门子plc数据 编辑:程序博客网 时间:2024/06/09 23:45
我好像不太擅长控制精度…
给出一些关系,判是否合法,于是考虑带权并查集
直接用分数表达要高精度(还要约分什么的不太可做),于是可以考虑分解质因数
但其实,只有乘除运算,我们可以考虑用对数
然后控一下精度
code:
#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<climits>#include<complex>#include<iostream>#include<algorithm>#define ll long long using namespace std;const int maxn = 11000;const double eps = 1e-8;int n,m;int fa[maxn];double f[maxn];int sig[maxn];int find_(const int x){ if(fa[x]==x) return x; int t=fa[x]; fa[x]=find_(t); f[x]+=f[t]; sig[x]*=sig[t]; return fa[x];}int main(){ int t; scanf("%d",&t); for(int T=1;T<=t;T++) { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) fa[i]=i,f[i]=0,sig[i]=1; bool flag=true; while(m--) { int u,v,x,y,s=1; scanf("%d%d%d%d",&u,&v,&x,&y); if(y<0) s=-1,y=-y; double c=log((double)y/(double)x); int t1=find_(u),t2=find_(v); if(t1!=t2) { s*=sig[v]; c=c-f[v]; fa[t2]=u,f[t2]=c,sig[t2]=s; } else { int s2=sig[v]*sig[u]; double c2=f[v]-f[u]; if(s2!=s||fabs(c2-c)>eps) flag=false; } } printf("Case #%d: ",T); if(flag) puts("Yes"); else puts("No"); } return 0;}
0 0
- BZOJ4602 [Sdoi2016]齿轮
- 【bzoj4602】【SDOI2016】【齿轮】【dfs】
- 【bzoj4602】[Sdoi2016]齿轮 dfs
- BZOJ4602: [Sdoi2016]齿轮
- bzoj4602 [Sdoi2016]齿轮
- bzoj4602: [Sdoi2016]齿轮
- [BZOJ4602][Sdoi2016]齿轮(加权并查集+分解质因数)
- [BZOJ4602][Sdoi2016]齿轮(加权并查集)
- [SDOI2016] BZOJ4602 齿轮-dfs-带权并查集-数论逆元-质因数分解
- bzoj 4602: [Sdoi2016]齿轮
- BZOJ 4602 [Sdoi2016]齿轮
- 4602: [Sdoi2016]齿轮
- 【BZOJ4602】齿轮,带权并查集
- [dfs] BZOJ 4602 [Sdoi2016]齿轮
- bzoj 4602: [Sdoi2016]齿轮(加权并查集)
- BZOJ[4602] [Sdoi2016]齿轮 加权并查集
- 数齿轮
- 齿轮基础
- java 操作mongoDB(DBobject,非spring data)
- Nginx + Tomcat 配置负载均衡集群
- bzoj 4815: [Cqoi2017]小Q的表格
- Rxjava+Retrofit的使用实例(基于retrofit2.1.0)
- python 使用shell 命令
- BZOJ4602: [Sdoi2016]齿轮
- 二元随机变量函数的分布
- static class 静态类(Java)
- swustoj(木材加工(0436))
- app感悟
- java泛型创建数组
- TableLayout大全
- 如何使用CSS设置<input>标签的背景小图标 简单
- 逆向工程核心原理学习笔记(二):字符串检索法查找main函数