TTTTTTTTTTTT CF 653D 送邮递员
链接:给一张n个点m条带权边的有向图,有x个人从起点出发到终点,每个人带的都带相同重量的货物,
规定一条边最多能经过其上权的重量的货物,问最多能带多重的货物?
2 ≤ n ≤ 50, 1 ≤ m ≤ 500, 1 ≤ x ≤ 100 000
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <algorithm>
#include <set>
using namespace std;
typedef long long ll;
typedef unsigned long long Ull;
#define MM(a,b) memset(a,b,sizeof(a));
const double eps = 1e-10;
const ll inf = 1e16;
const double pi=acos(-1);
const int mod=100000000; struct edge{
int to;
ll c;
int rev;
};//注意顺序关系与(edge){}对应 vector<edge> G[55];
vector<edge> F[55];
int level[55],iter[55];
int n,m,x,u,v,c; void bfs(int s)
{
queue<int> q;
q.push(s);
level[s]=1;
while(q.size())
{
int u=q.front();q.pop();
for(int i=0;i<G[u].size();i++)
{
edge e=G[u][i];
if(e.c>0&&level[e.to]==-1)
{
level[e.to]=level[u]+1;
q.push(e.to);
}
}
}
} double dfs(int s,int t,double minn)
{
if(s==t) return minn;
for(int &i=iter[s];i<G[s].size();i++)
{
edge &e=G[s][i];
if(e.c>0&&level[e.to]>level[s])
{
int d=dfs(e.to,t,min((double)minn,(double)e.c));
if(d>0)
{
e.c-=d;
G[e.to][e.rev].c+=d;
return d;
}
}
}
return 0;
} bool ok(double mid)
{
for(int i=1;i<=n;i++) G[i].clear();
for(int i=1;i<=n;i++)
for(int j=0;j<F[i].size();j++)
{
G[i].push_back(F[i][j]);
G[i][j].c=(ll)(F[i][j].c/mid);//精度很重要
}
double ans=0,temp;
for(;;)
{
MM(level,-1);
bfs(1);
if(level[n]<0) break;
MM(iter,0);
while((temp=dfs(1,n,inf))>0)
ans+=temp;
}
return ans>=x;
} int main()
{
double l,r;
while(~scanf("%d %d %d",&n,&m,&x))
{
for(int i=1;i<=n;i++) F[i].clear();
l=0;r=0;
for(int i=1;i<=m;i++)
{
scanf("%d %d %d",&u,&v,&c);
F[u].push_back((edge){v,c,F[v].size()});
F[v].push_back((edge){u,0,F[u].size()-1});
r=max(r,(double)c);//库里的max参数
}
for(int i=1;i<=200;i++)
{
double mid=(l+r)/2;
if(ok(mid)) l=mid;
else r=mid;
}
printf("%.10f\n",r*x);
}
return 0;
}
分析:这道题精度卡的很恶心,但是用double的话这道题就没什么问题了;
参考资料 深刻的领会了long long的强大,,double的有效位数是15-17位,但是能表示的范围
可以达到10^308,,因为是科学计数法,,,double是 1.1234567890123456E指数这种表示的
TTTTTTTTTTTT CF 653D 送邮递员的更多相关文章
- 洛谷P1629 邮递员送信
题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员每 ...
- 从苹果apns的feedback服务器获取推送失败的token
在开发自己的苹果推送服务时候,要合理的控制ios设备的Token,而这个Token是由苹果服务器Apns产生的,就是每次app问Apns要Token,由苹果服务器产生的Token会记录到Apns里面, ...
- codevs3872 邮递员送信(SPFA)
邮递员送信 时间限制: 1 Sec 内存限制: 64 MB提交: 10 解决: 5[提交][状态][讨论版] 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2 ...
- 百度云推送的Java实现
推送现在基本APP都有,项目中要通知和消息,所以综合考虑用了百度云推送 Java实现步骤: 1. 下载 http://push.baidu.com/sdk/push_server_sdk_for_ja ...
- 利用pyapns进行ios推送
ios客户端的同事提供了2个证书,分别是aps_development.cer 和 pushdevelopment.p12, 我最终目的就是把这2个证书合并成1个pem证书,然后通过pyapns进行 ...
- python 3.5构建WINDOWS推送服务
import ConfigParser import os import sys cf = ConfigParser.ConfigParser() #绝对路径获取 ABSPATH=os.path.ab ...
- P1629 邮递员送信
题目描述: 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间.这个邮递员 ...
- APNS IOS 消息推送处理失效的Token
在开发苹果推送服务时候,要合理的控制ios设备的Token,而这个Token是由苹果服务器Apns产生的,就是每次app问Apns要Token,由苹果服务器产生的Token会记录到Apns里面,我们需 ...
- [题解]邮递员寄信(luoguP1629)
题目来源:luoguP1629 题目描述 有一个邮递员要送东西,邮局在结点1.他总共要送N-1样东西,其目的地分别是2-N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条 ...
随机推荐
- 云数据库 Redis 版
首先观看视频简介 云数据库 Redis 版是一项易于部署和管理的按需数据库服务,与 Redis 协议兼容.云数据库 Redis 版通过从内存缓存中检索数据而提供高速数据读写功能,并通过同时使用内存和硬 ...
- 有人向你扔了一个bug,哈哈哈哈
有人向你扔了一个bug. "26楼会议室的灯亮着.它应该是熄灭着的." bug的备注里写道"你应该能在5分钟内搞定,只要按一下开关就好了."你去了26楼的会议室 ...
- 给网页中的button加动画效果
网页中的很多事件交互都是通过点击页面中的按钮来实现的,给按钮加一点动画效果也会让网页看起来生动一些,以下就是一个简单的例子: 此按钮的动画主要是通过css的transform动画,伪元素,伪类来实现: ...
- Java中「与运算,或运算,异或运算,取反运算。」
版权声明一:本文为博主原创文章,转载请附上原文出处链接和本声明.版权声明二:本网站的所有作品会及时更新,欢迎大家阅读后发表评论,以利作品的完善.版权声明三:对不遵守本声明或其他违法.恶意使用本网内容者 ...
- 三剑客-awk(简写)
特殊要点:$0 表示整个当前行$1 每行第一个字段NF 字段数量变量NR 每行的记录号,多文件记录递增OFS 输出字段分隔符, 默认也是空格,可以改为制表符等ORS 输出的记录分隔符,默认为换行符,即 ...
- 关于CSRF 和 csrftoken
CSRF 虽然利用了session验证机制的漏洞,一般使用加密token的方式防御,但是其本身和session以及JWT token没有直接联系. 描述 CSRF利用用户正常登录产生的cookie,利 ...
- 03 Redis发布与订阅
以qq群的公告,单个发布者,多个收听者为例 发布/订阅 实验 发布订阅的命令 PUBLISH channel msg 将信息 message 发送到指定的频道 channel SUBSCRIBE ch ...
- PHP之常用操作
在最高权限下执行相关命令 1)查看PHP配置 php --ini Configuration File (php.ini) Path: /www/server/php//etc Loaded Conf ...
- JS语法学习笔记-菜鸟教程
现在只需要<script></script>标签 javascript通常做法是放在<head>部分中,或者放在页面底部,这样可以把他们安置在同一位置,不会干扰页面 ...
- 织梦DEDECMS 5.7文章列表第一页dedefield.content
功能介绍:有很多DEDEcms使用者,在二级文章列表中加入了{dede:field.content/},但在二级栏目中的每一页列表中都存在内容:使用该功能可以只在第一页显示. 注意:只针对最新dede ...