CSU 1806 Toll 自适应simpson积分+最短路
分析:根据这个题学了一发自适应simpson积分(原来积分还可以这么求),然后就是套模板了
学习自适应simpson积分:http://blog.csdn.net/greatwall1995/article/details/8639135
- #include <cstdio>
- #include <cstring>
- #include <queue>
- #include <cmath>
- #include <algorithm>
- using namespace std;
- typedef long long LL;
- const int N = 1e2 + ;
- const double eps = 1e-;
- const double INF = 1e12;
- int n,m,T,tot,head[];
- int a[N],b[N],c[N],d[N];
- bool vis[];
- double dis[N];
- struct Edge{
- int v,next;
- double w;
- Edge(int v=,double w=){
- this->v=v;this->w=w;
- }
- bool operator<(const Edge &rhs)const{
- return w>rhs.w;
- }
- }edge[N];
- void add(int u,int v,double w){
- edge[tot].v=v;
- edge[tot].w=w;
- edge[tot].next=head[u];
- head[u]=tot++;
- }
- priority_queue<Edge>q;
- double F(double t){
- memset(head,-,sizeof(head));tot=;
- memset(vis,false,sizeof(vis));
- for(int i=;i<=n;++i)dis[i]=INF;
- dis[]=;
- for(int i=;i<m;++i){
- add(a[i],b[i],c[i]*t+d[i]);
- }
- q.push(Edge(,dis[]));
- while(!q.empty()){
- int u=q.top().v;
- q.pop();if(vis[u])continue;
- vis[u]=true;
- for(int i=head[u];~i;i=edge[i].next){
- int v=edge[i].v;
- if(!vis[v]&&dis[v]>dis[u]+edge[i].w){
- dis[v]=dis[u]+edge[i].w;
- q.push(Edge(v,dis[v]));
- }
- }
- }
- return dis[n];
- }
- double simpson(double a,double b){
- double c=a+(b-a)/;
- return (F(a)+*F(c)+F(b))*(b-a)/;
- }
- double asr(double a,double b,double eps,double A){
- double c=a+(b-a)/;
- double L = simpson(a,c),R=simpson(c,b);
- if(fabs(L+R-A)<=*eps)return L+R+(L+R-A)/15.0;
- return asr(a,c,eps/,L)+asr(c,b,eps/,R);
- }
- double get(double a,double b,double eps){
- return asr(a,b,eps,simpson(a,b));
- }
- int main(){
- while(~scanf("%d%d%d",&n,&m,&T)){
- for(int i=;i<m;++i)scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
- printf("%.6f\n",get(,T,eps)/T);
- }
- return ;
- }
CSU 1806 Toll 自适应simpson积分+最短路的更多相关文章
- CSU 1806 Toll
最短路,自适应$Simpson$积分. 看了别人的题解才知道有个东西叫自适应$Simpson$积分. 有这样一个积分公式:$\int_a^b {f(x)dx} \approx \frac{{b - ...
- 自适应Simpson积分
自适应Simpson积分 作用 如标题所示,这玩意就是当你不会微积分的时候来求积分的. 总所周知,积分的定义就是函数的某一段与坐标轴之间的面积. 那么,自适应Simpson积分就是一种可以再某些精度下 ...
- 【bzoj1502】[NOI2005]月下柠檬树 自适应Simpson积分
题目描述 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理.李哲是一个喜爱思考的孩子,当他看到在月 ...
- HDU 1724 Ellipse 【自适应Simpson积分】
Ellipse Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- 【BZOJ-1502】月下柠檬树 计算几何 + 自适应Simpson积分
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1017 Solved: 562[Submit][Status] ...
- 【最短路】【数学】CSU 1806 Toll (2016湖南省第十二届大学生计算机程序设计竞赛)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1806 题目大意: N个点M条有向边,给一个时间T(2≤n≤10,1≤m≤n(n-1), ...
- HDU 1724 Ellipse 自适应simpson积分
simpson公式是用于积分求解的比较简单的方法(有模板都简单…… 下面是simpson公式(很明显 这个公式的证明我并不会…… (盗图…… 因为一段函数基本不可能很规则 所以我们要用自适应积分的方法 ...
- bzoj 2178 自适应Simpson积分
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #i ...
- 【BZOJ1502】[NOI2005]月下柠檬树 Simpson积分
[BZOJ1502][NOI2005]月下柠檬树 Description 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树 ...
随机推荐
- LeetCode1---两数之和
import java.util.Arrays;import java.util.HashMap;import java.util.Map; /** *功能描述 :两数之和 * @author lkr ...
- 计算1+2+...+100之和<for循环的学习>
#include <stdio.h> /* 计算1+2+....+100 soulsjie 20170525 */ void main(){ int i; int s=0; for(i=0 ...
- Leetcode 188.买卖股票的最佳时机IV
买卖股票的最佳时机IV 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多笔交易(你必 ...
- 《C语言程序设计(第四版)》阅读心得(一)
本篇开始写我个人觉得谭浩强老师的<C语言程序设计(第四版)>中之前没有认识到,或者忘了的知识.因为本科学过,所以有些简单的东西就没有放进来了,所以可能并不是太全面. 第一章程序设计与语言 ...
- 【NOIP2017练习】跳跃切除子序列(模拟)
题意: 思路: 已放弃 #include <bits/stdc++.h> typedef long long LL; int main(){ int T; scanf("%d&q ...
- Linux下汇编语言学习笔记43 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- oracle的processes和session最大限制
1.现象:oracle运行了一段时间后出现用户名连接不上,提示process已经达到最大值. 2.解决: --管理员身份登录 sqlplus / as sysdba --修改processes最大值, ...
- SqlServer2008发布订阅(数据同步)
目录 1. 发布必备条件 1.1. 数据库故障还原模型必需为完全还原模型 1.2. 数据库被同步的数据表必须有主键 1.3. 计算机名称来进行SQLServer服务器的注册 1.4. SQLServe ...
- Google Kaptcha验证码的使用
原文:http://www.kailing.pub/article/index/arcid/92.html Kaptcha是什么? kaptcha 是谷歌开源的非常实用的验证码生成工具,基于Simpl ...
- ImportError: No module named MySQLdb解决办法
http://blog.slogra.com/post-429.html http://blog.sina.com.cn/s/blog_74a7e56e0101a7qy.html 今天突发奇想在服务器 ...