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 + 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积分+最短路相关推荐
- 【BZOJ-1502】月下柠檬树 计算几何 + 自适应Simpson积分
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1017 Solved: 562 [Submit][Statu ...
- [BZOJ1502]月下柠檬树(自适应辛普森积分)
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1387 Solved: 739 [Submit][Statu ...
- Simpson积分方法计算NURBS曲线弧长,详细原理+代码实现
Simpson积分方法计算NURBS曲线弧长,详细原理+代码实现 Simpson 积分方法是一种数值积分方法,可以用于计算曲线的弧长.它的基本思想是将曲线分成若干小段,对每一小段采用 Simpson ...
- 【BZOJ1502】[NOI2005]月下柠檬树 Simpson积分
[BZOJ1502][NOI2005]月下柠檬树 Description 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树 ...
- simpson积分模板
河工大校赛卡B题卡了三个小时.当时还很疑惑怎么这么多人积分学的这么好,补题的时候才知道居然有直接的算法模板可以套用. 记录下神奇的积分模板: #include<cstdio> #inclu ...
- 数值分析——自适应辛普森积分
数值分析--自适应辛普森积分 自适应辛普森积分法是利用二次函数对被积函数进行插值的一种模拟积分法,常用于估计积分的数值,利用递归自动适应所需精度. 公式推导 基本思想公式: ∫abf(x)dx≈∫ab ...
- [模板] 计算几何2: 自适应Simpson/凸包/半平面交/旋转卡壳/闵可夫斯基和
一些基本的定义在这里: [模板] 计算几何1(基础): 点/向量/线/圆/多边形/其他运算 自适应Simpson Simpson's Rule: \[ \int ^b_a f(x)dx\approx ...
- [NOI2005] 月下柠檬树 (自适应辛普森积分)
题目 原题链接:点这里 总体思路–>问题转化 先将原本的柠檬树分解成为多个圆台,再单独看圆台的投影 一个圆在地面的投影,是等比例的,而一条竖线的投影长度d=htanαd=\cfrac{h}{\ ...
- HDU 1724 Ellipse ——Simpson积分
[题目分析] 一看题目,直接把椭圆积分起来就可以了嘛. 然后发现椭圆比较难积分,还是算了吧. 用Simpson积分硬上. 大概就是用二次函数去拟合面积. [代码] #include <cstdi ...
最新文章
- 铁线蕨算法(Adiantum)为低端智能手机提供磁盘加密服务
- 【备份恢复】Oracle 数据备份与恢复微实践
- 面向程序员的数据挖掘指南: 第二章 从推荐系统开始
- APDPlat的系统启动和关闭流程剖析
- dji大疆机器人冬令营_2019RoboMaster高中生机器人冬令营火热进行中
- 计算机应用基础模4答案,2012年自考“计算机应用基础”练习题及答案四
- [Kaggle] Housing Prices 房价预测
- java题-java运行时异常与一般异常有何异同?
- Pyqt之QApplication
- 含泪推荐几款超级好用的软件
- Java面试题十二:Java内存模型,h5移动端开发面试题
- mysql字段描述_详细的MySQL字段类型描述
- Java复习 思维导图
- js 获取到number的length
- 《东周列国志》第二十六回 歌扊扅百里认妻 获陈宝穆公证梦
- java 求球体表面积_java设计:计算圆的面积和球体的体积,在一个类中用两种方法实现...
- 饮用水安全与水资源保护
- 计算机excel教程,电脑安装excel教程的方法步骤详解
- python如何获取路径
- 一小时速成!扁平化名片设计PS教程