[CSU1806]Toll
题目:Toll
传送门:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1806
题目简述:给定n个点m条有向边的有向图,每条边的花费是$b_i * t +d_i$,设f(t)表示给定t的时候1-n的最小花费,求:${\frac{\int_0^T{f(t)dt}}{T}}$
分析:
(1)f(t)可用最短路求出来。
(2)积分值可用自适应辛普森积分法计算。
注意:有向图!
代码:
#include <cstdio>
#include <cstring>
const int N=,QN=,M=;
const double EPS=1e-,INF=1e9;
int n,m;
int size,fi[N];
struct Edge{int to,next;double c,d;}e[M];
void Gadd(int x,int y,double c,double d){
e[++size].to=y;e[size].c=c;e[size].d=d;e[size].next=fi[x];fi[x]=size;
}
int q[N+];double dis[N];bool use[N];
double F(double x){
for(int i=;i<=n;++i)dis[i]=INF;
int h=,t=;dis[q[t]=]=;
for(int v;h!=t;){
if((++h)==QN)h=;use[v=q[h]]=false;
for(int i=fi[v],u;i;i=e[i].next){
u=e[i].to;
if(dis[v]+e[i].c*x+e[i].d<dis[u]){
dis[u]=dis[v]+e[i].c*x+e[i].d;
if(use[u])continue;
if((++t)==QN)t=;use[q[t]=u]=true;
}
}
}
return dis[n];
}
double Simpson(double l,double r){
return (r-l)*(F(l)+*F((l+r)/)+F(r))/;
}
double Abs(double x){return x<?-x:x;}
double Integral(double l,double r,double S){
double mid=(l+r)/;
double A=Simpson(l,mid);
double B=Simpson(mid,r);
if(Abs(A+B-S)<EPS)
return S;else return Integral(l,mid,A)+Integral(mid,r,B);
}
int main(){
for(double T,ans;~scanf("%d%d%lf",&n,&m,&T);){
size=;memset(fi,,sizeof fi);
for(int i=,a,b,c,d;i<=m;++i){
scanf("%d%d%d%d",&a,&b,&c,&d);
Gadd(a,b,(double)c,(double)d);
}
ans=Integral(,T,Simpson(,T))/T;
printf("%.8f\n",ans);
}
return ;
}
[CSU1806]Toll的更多相关文章
- Codeforces Gym 100425D D - Toll Road 找规律
D - Toll RoadTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view ...
- UVA 10537 - The Toll! Revisited(dijstra扩张)
UVA 10537 - The Toll! Revisited option=com_onlinejudge&Itemid=8&page=show_problem&catego ...
- UVA10537 Toll! Revisited
difkstra + 路径输出 The Toll! Revisited Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...
- 1774: [Usaco2009 Dec]Toll 过路费
1774: [Usaco2009 Dec]Toll 过路费 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 263 Solved: 154[Submit ...
- Luogu P2966 [USACO09DEC]牛收费路径Cow Toll Paths
题目描述 Like everyone else, FJ is always thinking up ways to increase his revenue. To this end, he has ...
- BZOJ_1774_[Usaco2009 Dec]Toll 过路费_floyd
BZOJ_1774_[Usaco2009 Dec]Toll 过路费_floyd 题意: 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦思生 财之道.为了发财,他设置了一 ...
- uva 10537 Toll! Revisited(优先队列优化dijstra及变形)
Toll! Revisited 大致题意:有两种节点,一种是大写字母,一种是小写字母. 首先输入m条边.当经过小写字母时须要付一单位的过路费.当经过大写字母时,要付当前財务的1/20做过路费. 问在起 ...
- [USACO09DEC] Cow Toll Paths
https://www.luogu.org/problem/show?pid=2966 题目描述 Like everyone else, FJ is always thinking up ways t ...
- P2966 [USACO09DEC]牛收费路径Cow Toll Paths
P2966 [USACO09DEC]牛收费路径Cow Toll Paths 题目描述 Like everyone else, FJ is always thinking up ways to incr ...
随机推荐
- JSP 学习笔记1
JSP 学习笔记 JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例--JSP页面有系统编译成Servlet,Servlet再负责响应用户请求. 1.JSP注释 < ...
- $_POST,$_GET,$_REQUEST区分
PHP $_REQUEST PHP $_REQUEST 用于收集 HTML 表单提交的数据. 下面的例子展示了一个包含输入字段及提交按钮的表单.当用户通过点击提交按钮来提交表单数据时, 表单数据将发送 ...
- 爬虫之requests 请求
1.发送不同的请求 import requests r = requests.get('https://www.baidu.com/') r = requests.post('http://httpb ...
- ELK+Filebeat (2)
ELK+Filebeat收集多台机器不同日志 采坑:在使用了6.0版本的ELK以后,使用如上配置,if [type]匹配不到在filebeat里面使用document_type定义的字符串.在多次调试 ...
- Netty之大名鼎鼎的EventLoop
EventLoopGroup 与Reactor: 前面的章节中我们已经知道了,一个Netty 程序启动时,至少要指定一个EventLoopGroup(如果使用到的是NIO,通常是指NioEventLo ...
- CompletionService用法踩坑解决优化
转自:https://blog.csdn.net/xiao__miao/article/details/86352380 1.近期工作的时候,运维通知一个系统的内存一直在增长,leader叫我去排查, ...
- python小学堂1
sun=0 start=1 while True: start1=start%2 if start1==1: sun = start + sun elif start1==0: sun=sun-sta ...
- [Python] 迭代器是什么?你每天在用的for循环都依赖它!
从循环说起 顺序,分支,循环是编程语言的三大逻辑结构,在Python中都得到了支持,而Python更是为循环结构提供了非常便利的语法:for ... in ... 刚从C语言转入Python的同学可能 ...
- redis缓存架构-03-redis下的replication以及master+slave
1.master和slave的读写分离(水平扩容支持读高并发) 2.master主从复制流程 master开始复制给slave前的认证流程 master向slave复制流程 2.1 无磁盘化复制配置 ...
- Java的socket编程中关于bufferedWriter的发送问题
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); String send ...