/*
二分答案(注意精度)
对于每一个答案 有(s1+s2+s3...)/(t1+t2+t3...)>=ans 时符合条件
这时ans有变大的空间
对于上述不等式如果枚举每一条路显得太暴力
化简一下变成 :s1-t1*ans+s2-t2*ans+s3-t3*ans...>=0
差分约束跑最长路 如果dis[n]>0 或者有正环 (开始这个忘掉了)ans就合法
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
const double Jing=0.0001;
using namespace std;
double s[][],t[][],ans,a[][],dis[];
int n,f[],c[],falg;
void SPFA(int st)
{
memset(f,,sizeof(f));
memset(dis,-0x3f,sizeof(dis));
queue<int>q;
q.push(st);f[st]=;dis[st]=,c[st]=;
while(!q.empty())
{
int k=q.front();
q.pop();
if(c[k]>n)
{
falg=;break;
}
for(int i=;i<=n;i++)
if(s[k][i]&&dis[i]<dis[k]+a[k][i])
{
dis[i]=dis[k]+a[k][i];
if(f[i]==)
{
c[i]=c[k]+;
q.push(i);
f[i]=;
}
}
f[k]=;
}
}
bool check(double x)
{
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
a[i][j]=s[i][j]-x*t[i][j];
falg=;
SPFA();
if(dis[n]>||falg==)return ;
else return ;
}
int main()
{
cin>>n;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
cin>>s[i][j];
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
cin>>t[i][j];
double l=,r=;
while(r-l>Jing)
{
double mid=(l+r)/;
if(check(mid))
{
ans=mid;
l=mid;
}
else r=mid;
}
printf("%.3f",ans);
return ;
}

codevs 1183 泥泞的道路 (二分+SPFA+差分约束)的更多相关文章

  1. Codevs 1183 泥泞的道路

    1183 泥泞的道路 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description CS有n个小区,并且任意小区之间都有两条单向道路 ...

  2. [codevs 1183][泥泞的道路(二分+spfa)

    题目:http://dev.codevs.cn/problem/1183/ 分析:这个和最优比率生成树很像,都可以二分答案的,只不过判定方面一个是求是否有最短路径,一个是求是否有生成树.假设等待判定的 ...

  3. codevs 1183 泥泞的道路 01分数规划

    题目链接 题目描述 Description CS有n个小区,并且任意小区之间都有两条单向道路(a到b,b到a)相连.因为最近下了很多暴雨,很多道路都被淹了,不同的道路泥泞程度不同.小A经过对近期天气和 ...

  4. Luogu4926 倍杀测量者(二分答案+差分约束)

    容易想到二分答案.问题变为判断是否所有条件都被满足,可以发现这是很多变量间的相对关系,取个log之后就是经典的差分约束模型了.特殊的地方在于某些人的分数已被给定,从每个人开始跑一遍最短路判断一下是否能 ...

  5. Candies---hdu3159(spfa+差分约束)

    题目链接:http://poj.org/problem?id=3159 题意:有n个小孩,m个关系格式是A B C 表示小孩 B 的糖果数最多比小孩A多C个,相当于B-A<=C; 有m个这样的关 ...

  6. POJ 3169 Layout (spfa+差分约束)

    题目链接:http://poj.org/problem?id=3169 差分约束的解释:http://www.cnblogs.com/void/archive/2011/08/26/2153928.h ...

  7. Schedule Problem spfa 差分约束

    题意:有n个任务,给出完成n个任务所需时间,以及一些任务安排.任务安排有四种: FAS a b:任务a需在任务b开始后完成. FAF a b:任务a需在任务b完成后完成. SAF a b:任务a需在任 ...

  8. POJ1275 Cashier Employment 二分、差分约束

    传送门 题意太长 为了叙述方便,将题意中的$0$点看作$1$点,$23$点看做$24$点 考虑二分答案(其实从小到大枚举也是可以的) 设$x_i$是我们选的雇员第$i$小时开始工作的人数,$s_i$是 ...

  9. POJ 3169 Layout (spfa+差分约束)

    题目链接:http://poj.org/problem?id=3169 题目大意:n头牛,按编号1~n从左往右排列,可以多头牛站在同一个点,给出ml行条件,每行三个数a b c表示dis[b]-dis ...

随机推荐

  1. Android app自动化测试之Python+Appium环境搭建

    1.安装JDK (1)JDK安装时会有两次,一次是jdk,第二次是jre. (2)环境变量配置: 添加JAVA_HOME变量, 值:Jdk的安装路径 添加CLASSPATH变量,值: .;%JAVA_ ...

  2. find_cmd函数分析

    一.概述 1.函数位置 common/command.c 2.函数功能分析 解析命令的关键环节是如何根据输入命令查找对应命令的信息,从而跳转到对应命令的函数处执行程序.这必然涉及到如何存放命令的详细信 ...

  3. Win10的革新与突破

    7月29号win10全球发布,作为微软最后一款操作系统,它会有那些令人期待的革新,作为一个互联网后现代时代,这款操作系统又会融入什么特别元素? 抱着期待,更新了win10后,我花了大概一天的时间,亲身 ...

  4. 转:aptitude 命令详解

    原文:http://www.isspy.com/aptitude-%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/ aptitude aptitude 是 Debian GN ...

  5. (org.hibernate.LazyInitializationException:19) - could not initialize proxy错误

    (org.hibernate.LazyInitializationException:19) - could not initialize proxy错误 在刚插入数据后,马上使用dao进行query ...

  6. JavaScript API

    HTML5 DOM, BOM, XMLHttpRequest, NodeJS, Framework Framework---------------> jQuery zepto Undersco ...

  7. [转]Windows Azure上安装SharePoint 2013

    基于Windows Azure 安装SharePoint 2013 前段时间写的基于Windows Azure安装SharePoint系列,由于Azure的体验账号过期了,所以不得不暂停.今天有幸参加 ...

  8. 几个国外FMX网站 good

    FireMonkey X –  Amazing overview of FireMonkey FMX Feeds – All your FireMonkey news in one place FMX ...

  9. 使用CSS为图片添加边框的几种方法

    css的应用十分广泛,即便用在图片的效果中也是方法多样,本文下面就介绍五种为图片添加特殊效果边框的CSS写法阴影效果 通过使用带有一些padding之的背景图来添加阴影效果. HTML <img ...

  10. 【HDOJ】3419 The Three Groups

    记忆化搜索. /* 3419 */ #include <cstdio> #include <cstring> #include <cstdlib> #define ...