dfs,连边,边权为比值,赋值搜索,遇到矛盾时退出

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std; typedef long long LL;
typedef double DB; #define eps 1e-8
#define M 10010
#define N 1010 struct edge
{
int to,next;
DB a;
}e[M<<1];
int head[M<<1];
int cnt; int T,n,m;
int yjy; int x,y,u,v;
int p[N<<1]; DB f[M<<1]; void link(int u,int v,DB x)
{
e[++cnt]=(edge){v,head[u],x};
head[u]=cnt;
} int dfs(int x)
{
p[x]=1;
for (int i=head[x];i!=-1;i=e[i].next)
{
int t=e[i].to;
if (p[t]==0)
{
f[t]=f[x]*e[i].a;
if (!dfs(t))
return 0;
}
else if ((f[x]*e[i].a-f[t])>eps)
return 0;
}
return 1;
} int main()
{
scanf("%d",&T);
while (T--)
{
cnt=0;
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++)
head[i]=-1,p[i]=0,f[i]=0;
for (int i=1;i<=m;i++)
{
scanf("%d%d%d%d",&u,&v,&x,&y);
link(v,u,1.0*x/y);
link(u,v,1.0*y/x);
}
bool flag=false;
for (int i=1;i<=n;i++)
if (!p[i])
{
f[i]=1.0;
if (!dfs(i))
{
flag=true;
break ;
}
}
printf("Case #%d: ",++yjy);
if (!flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}

  

最新文章

  1. 【转】logback logback.xml常用配置详解(三) &lt;filter&gt;
  2. c# Dictionary的遍历和排序
  3. 关于C++虚函数的一点点~~
  4. 在ubuntu下配置apache运行python脚本
  5. 使用npoi.dll导出数据到excel
  6. HeadFirst 12 (web应用安全)
  7. 团队博客作业Week1 Team Homework #3软件工程在北航
  8. Callable与Future的简单介绍
  9. NodeJs随心学习(一)之UEditor开源项目部署
  10. [Android] 输入系统(一)
  11. 支付宝开通海外退税 阿里腾讯暗战跨境O2O_21世纪网
  12. 我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)
  13. ISP图像质量自动化测试方法
  14. MVC无刷新查询,PagedList分页控件使用,导出Excel
  15. 《深入理解Java虚拟机》-----第7章 虚拟机类加载机制——Java高级开发必须懂的
  16. (二)Knockout 文本与外观绑定
  17. postgis创建空间数据库,导入shp数据
  18. Vue的href动态拼接绑定
  19. POJ_1185_炮兵阵地 dp+状态压缩
  20. feign接口调用异常的解决方向

热门文章

  1. filezilla server FTP 安装报错 &quot;could not load TLS network. Aborting start of administration interface&quot;
  2. Bullet:MySQL增强半同步参数rpl_semi_sync_master_wait_point值AFTER_SYNC和AFTER_COMMIT的对比实验
  3. [Python3网络爬虫开发实战] 1.4.3-Redis的安装
  4. c++基础_时间转换
  5. ruby cucumber安装
  6. Anaconda换源及常用命令
  7. Leetcode 142.环形链表II
  8. poj 1182用向量的思考模式
  9. POJ 2828 Buy Tickets (线段树 || 树状数组)
  10. 用ReentrantLock和Condition实现生产者和消费者模式