分析:根据这个题学了一发自适应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 + 5;
const double eps = 1e-9;
const double INF = 1e12;
int n,m,T,tot,head[15];
int a[N],b[N],c[N],d[N];
bool vis[15];
double dis[N];
struct Edge{int v,next;double w;Edge(int v=0,double w=0){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,-1,sizeof(head));tot=0;memset(vis,false,sizeof(vis));for(int i=1;i<=n;++i)dis[i]=INF;dis[1]=0;for(int i=0;i<m;++i){add(a[i],b[i],c[i]*t+d[i]);}q.push(Edge(1,dis[1]));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)/2;return (F(a)+4*F(c)+F(b))*(b-a)/6;
}
double asr(double a,double b,double eps,double A){double c=a+(b-a)/2;double L = simpson(a,c),R=simpson(c,b);if(fabs(L+R-A)<=15*eps)return L+R+(L+R-A)/15.0;return asr(a,c,eps/2,L)+asr(c,b,eps/2,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=0;i<m;++i)scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);printf("%.6f\n",get(0,T,eps)/T);}return 0;
}

View Code

转载于:https://www.cnblogs.com/shuguangzw/p/5842288.html

CSU 1806 Toll 自适应simpson积分+最短路相关推荐

  1. 【BZOJ-1502】月下柠檬树 计算几何 + 自适应Simpson积分

    1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1017  Solved: 562 [Submit][Statu ...

  2. [BZOJ1502]月下柠檬树(自适应辛普森积分)

    1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1387  Solved: 739 [Submit][Statu ...

  3. Simpson积分方法计算NURBS曲线弧长,详细原理+代码实现

    Simpson积分方法计算NURBS曲线弧长,详细原理+代码实现 Simpson 积分方法是一种数值积分方法,可以用于计算曲线的弧长.它的基本思想是将曲线分成若干小段,对每一小段采用 Simpson ...

  4. 【BZOJ1502】[NOI2005]月下柠檬树 Simpson积分

    [BZOJ1502][NOI2005]月下柠檬树 Description 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树 ...

  5. simpson积分模板

    河工大校赛卡B题卡了三个小时.当时还很疑惑怎么这么多人积分学的这么好,补题的时候才知道居然有直接的算法模板可以套用. 记录下神奇的积分模板: #include<cstdio> #inclu ...

  6. 数值分析——自适应辛普森积分

    数值分析--自适应辛普森积分 自适应辛普森积分法是利用二次函数对被积函数进行插值的一种模拟积分法,常用于估计积分的数值,利用递归自动适应所需精度. 公式推导 基本思想公式: ∫abf(x)dx≈∫ab ...

  7. [模板] 计算几何2: 自适应Simpson/凸包/半平面交/旋转卡壳/闵可夫斯基和

    一些基本的定义在这里: [模板] 计算几何1(基础): 点/向量/线/圆/多边形/其他运算 自适应Simpson Simpson's Rule: \[ \int ^b_a f(x)dx\approx ...

  8. [NOI2005] 月下柠檬树 (自适应辛普森积分)

    题目 原题链接:点这里 总体思路–>问题转化 先将原本的柠檬树分解成为多个圆台,再单独看圆台的投影 一个圆在地面的投影,是等比例的,而一条竖线的投影长度d=htan⁡αd=\cfrac{h}{\ ...

  9. HDU 1724 Ellipse ——Simpson积分

    [题目分析] 一看题目,直接把椭圆积分起来就可以了嘛. 然后发现椭圆比较难积分,还是算了吧. 用Simpson积分硬上. 大概就是用二次函数去拟合面积. [代码] #include <cstdi ...

最新文章

  1. 铁线蕨算法(Adiantum)为低端智能手机提供磁盘加密服务
  2. 【备份恢复】Oracle 数据备份与恢复微实践
  3. 面向程序员的数据挖掘指南: 第二章 从推荐系统开始
  4. APDPlat的系统启动和关闭流程剖析
  5. dji大疆机器人冬令营_2019RoboMaster高中生机器人冬令营火热进行中
  6. 计算机应用基础模4答案,2012年自考“计算机应用基础”练习题及答案四
  7. [Kaggle] Housing Prices 房价预测
  8. java题-java运行时异常与一般异常有何异同?
  9. Pyqt之QApplication
  10. 含泪推荐几款超级好用的软件
  11. Java面试题十二:Java内存模型,h5移动端开发面试题
  12. mysql字段描述_详细的MySQL字段类型描述
  13. Java复习 思维导图
  14. js 获取到number的length
  15. 《东周列国志》第二十六回 歌扊扅百里认妻 获陈宝穆公证梦
  16. java 求球体表面积_java设计:计算圆的面积和球体的体积,在一个类中用两种方法实现...
  17. 饮用水安全与水资源保护
  18. 计算机excel教程,电脑安装excel教程的方法步骤详解
  19. python如何获取路径
  20. 一小时速成!扁平化名片设计PS教程

热门文章

  1. iOS---搜索功能
  2. 打印数组算法:堆栈与深度优先搜索(迷宫问题)
  3. OSPF-LSA数据包头
  4. 宅男程序员给老婆的计算机课程之9:数据模型
  5. 常用几种数据库连接字符串
  6. Oracle中的date与timestamp
  7. SAP S/4HANA销售订单创建时,会自动触发生产订单的创建
  8. 串行总线---差分互连(差分线)之共模、奇模、偶模
  9. 搭建 LNMP 环境
  10. 苹果智能家居大招要来 两年一直没火真相解秘