[poj] 1700 Crossing River
来源:互联网 发布:潮流相机软件 编辑:程序博客网 时间:2024/05/22 03:32
[poj] 1700 Crossing River
【题目】http://poj.org/problem?id=1700
【题意】求过河最少时间
【算法】贪心
【题解】首先最慢的人过河花费最多的时间。然后船回来的时候花费时间尽可能少。可以考虑最慢和次慢一起过河,最快和次快负责分别送船回来。也可以考虑每次都是由最快接送。哪种方案呢?在用之前比较好哪个少就好了。所以就这样写,一开始最快a0和次快a1的过河了,然后最快回来,然后选择方案,最慢an,次慢an-1;比较花费时间an+a2+a2(最慢和次慢一起过河,次快送船回来,然后和最快一起再过河)和an+a1+an-1(最慢和最快过河,最快送船回来,次慢和最快再过河)。
【注意】不好想唉
【测试数据】
3
4
1 2 5 10
4
1 4 5 10
3
1 1 1
Ans:
17
21
3
【AC代码】
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[1010];
int main(){
int T;
int n,i,t;
scanf("%d",&T);
while(T-->0){
scanf("%d",&n);
for(i=0;i<n;i++)scanf("%d",&a[i]);
if(n==1){
printf("%d\n",a[0]);
continue;
}
sort(a,a+n);
t=a[1];
for(n--;n>1;n--){
t+=a[0];
if(a[n]+a[0]+a[n-1]<=a[n]+a[1]+a[1])t+=a[n];
else t+=a[n--]+a[1]+a[1];
}
printf("%d\n",t);
}
return 0;
}
【心得】我要坚持做黑书,我要坚持看英语。加油!我还要提高效率!- poj 1700 Crossing River
- Poj 1700 Crossing River
- POJ 1700 Crossing River
- [poj] 1700 Crossing River
- POJ 1700 Crossing River
- poj 1700 Crossing River
- POJ-1700-Crossing River
- poj-1700 Crossing River
- POJ 1700 Crossing River
- POJ 1700 Crossing River
- poj 1700 Crossing River
- poj 1700 Crossing River
- POJ 1700 Crossing River
- poj 1700 Crossing River
- POJ 1700:Crossing River
- poj 1700 Crossing River
- POJ 1700 Crossing River
- POJ 1700 Crossing River
- Jump Tables via Function Pointer Arrays in C/C++
- 关于sizeof和strlen !!!
- hdu2486 hdu2580 poj3922 A simple stone game--K倍动态减法游戏 博弈
- 2012记录整理
- [poj] 1042 Gone Fishing
- [poj] 1700 Crossing River
- 深度挖掘打井来-----STUDENTMIS
- java小练习(控制台输出猜一个数,有猜大猜小提示 )
- 2012中兴软件笔试 回忆录
- gcc(mingw)在windows环境下的配置
- 网络游戏协议封包需注意点
- [poj] 1090 Chain
- 第三章 标准库类型
- String 深入理解