博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1700 过河坐船最短时间问题
阅读量:7173 次
发布时间:2019-06-29

本文共 906 字,大约阅读时间需要 3 分钟。

     这道题如果理解了就不难了,可分为一步步两个永远最快的a[0],a[1]载现存的两个最慢的过河的问题,一种是最快a[0]载现存最慢过去,0再回来,再载次慢,0再回来,时间为2*a[0]+t[p-2]+t[p-1]或者01过去,0回来,34过去(不可能0再载3或者4过去,那就浪费了第一次0载1过去的意义,等于在第一种方案基础上把34载过去又把2载过去2回来,时间为a[0]+2*a[1]+t[p-1],再根据更新的数据,比较大小,继续选定方案.

#include 
#include
using namespace std;bool cmp(int a,int b){ return a
>cnt; while(cnt--){ sum = 0; cin>>p; for(int i = 0;i
>a[i]; sort(a,a+p,cmp); for(i=p-1;i>2;i-=2){ if(a[0]+2*a[1]+a[i]>2*a[0]+a[i-1]+a[i]) //主要就在这两种坐船的方式,比较2a【1】和a[0]+a[i-1]的时间,由输入数据决定 sum+=2*a[0]+a[i-1]+a[i]; else sum+=a[0]+2*a[1]+a[i]; } if(i==2) sum+=a[0]+a[1]+a[2]; else if(i==1) sum+=a[1]; else sum+=a[0]; cout<
<

转载于:https://www.cnblogs.com/zhangmingzhao/p/7256489.html

你可能感兴趣的文章
NeHe OpenGL第三十六课:渲染到纹理
查看>>
使用ntop代替sniffer与wireshark来监控网络
查看>>
C#学习之接口
查看>>
凡事预则立
查看>>
[IE技巧] IE 除了用来上网之外,还可以用来做计算器
查看>>
Java字符串与文件的互转
查看>>
[零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](2)
查看>>
redis的导入导出需要特别注意的地方
查看>>
实战:RIP和EIGRP路由再发布
查看>>
SpringCloud中文社区转型Spring4All欢迎您的加入
查看>>
ntop安装过程
查看>>
《统一沟通-微软-实战》-6-部署-5-边缘服务器-2012-07-12-2-A
查看>>
WinForm自动化测试工具开发札记(3)
查看>>
CentOS5.5环境下布署LVS+keepalived
查看>>
一次服务器IO占用率高的定位分析
查看>>
Flex 产生随机数、随机颜色
查看>>
Android--解析XML之DOM
查看>>
微软明年发布Visual Studio “10”
查看>>
树洞外链安装
查看>>
cve-2017-11882漏洞利用
查看>>