分析:根据这个题学了一发自适应simpson积分(原来积分还可以这么求),然后就是套模板了

学习自适应simpson积分:http://blog.csdn.net/greatwall1995/article/details/8639135

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <queue>
  4. #include <cmath>
  5. #include <algorithm>
  6. using namespace std;
  7. typedef long long LL;
  8. const int N = 1e2 + ;
  9. const double eps = 1e-;
  10. const double INF = 1e12;
  11. int n,m,T,tot,head[];
  12. int a[N],b[N],c[N],d[N];
  13. bool vis[];
  14. double dis[N];
  15. struct Edge{
  16. int v,next;
  17. double w;
  18. Edge(int v=,double w=){
  19. this->v=v;this->w=w;
  20. }
  21. bool operator<(const Edge &rhs)const{
  22. return w>rhs.w;
  23. }
  24. }edge[N];
  25. void add(int u,int v,double w){
  26. edge[tot].v=v;
  27. edge[tot].w=w;
  28. edge[tot].next=head[u];
  29. head[u]=tot++;
  30. }
  31. priority_queue<Edge>q;
  32. double F(double t){
  33. memset(head,-,sizeof(head));tot=;
  34. memset(vis,false,sizeof(vis));
  35. for(int i=;i<=n;++i)dis[i]=INF;
  36. dis[]=;
  37. for(int i=;i<m;++i){
  38. add(a[i],b[i],c[i]*t+d[i]);
  39. }
  40. q.push(Edge(,dis[]));
  41. while(!q.empty()){
  42. int u=q.top().v;
  43. q.pop();if(vis[u])continue;
  44. vis[u]=true;
  45. for(int i=head[u];~i;i=edge[i].next){
  46. int v=edge[i].v;
  47. if(!vis[v]&&dis[v]>dis[u]+edge[i].w){
  48. dis[v]=dis[u]+edge[i].w;
  49. q.push(Edge(v,dis[v]));
  50. }
  51. }
  52. }
  53. return dis[n];
  54. }
  55. double simpson(double a,double b){
  56. double c=a+(b-a)/;
  57. return (F(a)+*F(c)+F(b))*(b-a)/;
  58. }
  59. double asr(double a,double b,double eps,double A){
  60. double c=a+(b-a)/;
  61. double L = simpson(a,c),R=simpson(c,b);
  62. if(fabs(L+R-A)<=*eps)return L+R+(L+R-A)/15.0;
  63. return asr(a,c,eps/,L)+asr(c,b,eps/,R);
  64. }
  65. double get(double a,double b,double eps){
  66. return asr(a,b,eps,simpson(a,b));
  67. }
  68. int main(){
  69. while(~scanf("%d%d%d",&n,&m,&T)){
  70. for(int i=;i<m;++i)scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
  71. printf("%.6f\n",get(,T,eps)/T);
  72. }
  73. return ;
  74. }

CSU 1806 Toll 自适应simpson积分+最短路的更多相关文章

  1. CSU 1806 Toll

    最短路,自适应$Simpson$积分. 看了别人的题解才知道有个东西叫自适应$Simpson$积分. 有这样一个积分公式:$\int_a^b {f(x)dx}  \approx \frac{{b - ...

  2. 自适应Simpson积分

    自适应Simpson积分 作用 如标题所示,这玩意就是当你不会微积分的时候来求积分的. 总所周知,积分的定义就是函数的某一段与坐标轴之间的面积. 那么,自适应Simpson积分就是一种可以再某些精度下 ...

  3. 【bzoj1502】[NOI2005]月下柠檬树 自适应Simpson积分

    题目描述 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理.李哲是一个喜爱思考的孩子,当他看到在月 ...

  4. HDU 1724 Ellipse 【自适应Simpson积分】

    Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

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

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

  6. 【最短路】【数学】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), ...

  7. HDU 1724 Ellipse 自适应simpson积分

    simpson公式是用于积分求解的比较简单的方法(有模板都简单…… 下面是simpson公式(很明显 这个公式的证明我并不会…… (盗图…… 因为一段函数基本不可能很规则 所以我们要用自适应积分的方法 ...

  8. bzoj 2178 自适应Simpson积分

    #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #i ...

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

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

随机推荐

  1. LeetCode1---两数之和

    import java.util.Arrays;import java.util.HashMap;import java.util.Map; /** *功能描述 :两数之和 * @author lkr ...

  2. 计算1+2+...+100之和<for循环的学习>

    #include <stdio.h> /* 计算1+2+....+100 soulsjie 20170525 */ void main(){ int i; int s=0; for(i=0 ...

  3. Leetcode 188.买卖股票的最佳时机IV

    买卖股票的最佳时机IV 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 k 笔交易. 注意: 你不能同时参与多笔交易(你必 ...

  4. 《C语言程序设计(第四版)》阅读心得(一)

    本篇开始写我个人觉得谭浩强老师的<C语言程序设计(第四版)>中之前没有认识到,或者忘了的知识.因为本科学过,所以有些简单的东西就没有放进来了,所以可能并不是太全面. 第一章程序设计与语言 ...

  5. 【NOIP2017练习】跳跃切除子序列(模拟)

    题意: 思路: 已放弃 #include <bits/stdc++.h> typedef long long LL; int main(){ int T; scanf("%d&q ...

  6. Linux下汇编语言学习笔记43 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  7. oracle的processes和session最大限制

    1.现象:oracle运行了一段时间后出现用户名连接不上,提示process已经达到最大值. 2.解决: --管理员身份登录 sqlplus / as sysdba --修改processes最大值, ...

  8. SqlServer2008发布订阅(数据同步)

    目录 1. 发布必备条件 1.1. 数据库故障还原模型必需为完全还原模型 1.2. 数据库被同步的数据表必须有主键 1.3. 计算机名称来进行SQLServer服务器的注册 1.4. SQLServe ...

  9. Google Kaptcha验证码的使用

    原文:http://www.kailing.pub/article/index/arcid/92.html Kaptcha是什么? kaptcha 是谷歌开源的非常实用的验证码生成工具,基于Simpl ...

  10. ImportError: No module named MySQLdb解决办法

    http://blog.slogra.com/post-429.html http://blog.sina.com.cn/s/blog_74a7e56e0101a7qy.html 今天突发奇想在服务器 ...