Design road

Problem's Link:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1548


Mean:

目的:从(0,0)到达(x,y)。但是在0~x之间有n条平行于y轴的河,每条河位于xi处,无限长,wi宽,并分别给出了建立路和桥每公里的单价

求:到达目标的最小费用。

analyse:

比赛的时候一直没想到思路,第二个样列怎么算都算不对,赛后才知道是三分。

首先把所有的桥移到最右端,然后三分枚举路和河的交点。

Time complexity: O(logn)

Source code: 

//  Memory   Time
// 1347K 0MS
// by : crazyacking
// 2015-03-30-21.24
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<string>
#include<cstdlib>
#include<cstring>
#include<climits>
#include<iostream>
#include<algorithm>
#define MAXN 1000010
#define LL long long
using namespace std;
double x,y,c1,c2,sum,xx;
double calc(double mid)
{
double road_cost=sqrt(xx*xx+mid*mid)*c1, bridge_cost=sqrt(sum*sum+(y-mid)*(y-mid))*c2;
return road_cost+bridge_cost;
} double solve(double low,double high)
{
double l=low,h=high;
double mid=(l+h)/,mmid=(mid+h)/;
double cmid=calc(mid),cmmid=calc(mmid);
while(fabs(cmmid-cmid)>=1e-)
{
if(cmid>cmmid)
l=mid;
else
h=mmid;
mid=(l+h)/,mmid=(mid+h)/;
cmid=calc(mid),cmmid=calc(mmid);
}
return min(cmmid,cmid);
} int main()
{
int n;
while(cin>>n>>x>>y>>c1>>c2)
{
sum=0.0;
double tmp1,tmp2;
for(int i=;i<=n;++i)
{
cin>>tmp1>>tmp2;
sum+=tmp2;
}
xx=x-sum;
printf("%.2lf\n",solve(0.0,y));
}
return ;
}

最新文章

  1. 带有runat=&quot;server&quot; 的服务器控件通过 ClientID 获取Id
  2. WPF,Silverlight与XAML读书笔记第四十五 - 外观效果之模板
  3. Oracle 外连接和 (+)号的用法
  4. 【codeblocks配置】C对Mysql数据的查询
  5. lr_convert_string_encoding()转码函数
  6. [杂题]CSUOJ1276 Counting Route Sequence
  7. action方法不返回
  8. C++小技巧之四舍五入与保留小数
  9. Win10下Mysql5.7.13,解压版安装流程
  10. flexbox基本原理
  11. 【java】Java相关学习参考链接(持续更新)
  12. centos配置小程序https和wss协议
  13. C语言---选择结构和循环结构
  14. Django框架----在Python脚本中调用Django环境
  15. QT源码查看001-QApplication和QCoreApplication
  16. ADO.NET事务
  17. Facebook广告API系列 1
  18. C++ static类成员,static类成员函数
  19. centos killall安装
  20. 很开心! 纪念一下 ^_^ 考勤系统(weX5+echarts3.0+Baas )

热门文章

  1. 【转】APP被苹果App Store拒绝的N个原因(持续补充)
  2. 命令行模式下 MYSQL导入导出.sql文件的方法
  3. Ubuntu14.04安装中文输入法以及解决Gedit中文乱码问题
  4. ORA-00119: invalid specification for system parameter LOCAL_LISTENER - 转
  5. CSS基础(二):基础和语法
  6. Bulk Insert的用法 .
  7. POJ 1451 T9
  8. 细数Qt开发的各种坑(欢迎围观)
  9. 用 Python 通过马尔可夫随机场(MRF)与 Ising Model 进行二值图降噪
  10. slf4j日志系统