POJ 1700 3404 Crossing River
来源:互联网 发布:淘宝上开店 编辑:程序博客网 时间:2024/06/03 16:29
有一艘船只能载两个人,总共有n个人要过河,每个人过河需要时间t[i], 两人共同过河时间为 max(t[i],t[j]),求过河时间最短。
每次载最慢的两个人过河都有两种方法。 可以是t[0] t[1] 一起,也可以是t[0]一个人来回载。
#include <stdio.h>#include <algorithm>using namespace std;#define MAX(x,y) (x<y?y:x)#define MIN(x,y) (x<y?x:y)int fun(int n , int g[]){ if (n==1) return g[0]; int i,j,sum=0,tmp,cmp1,cmp2; tmp=MAX(g[0],g[1])+g[0]+g[1]; for (j=n-1;j>2;j-=2){ cmp1=tmp+MAX(g[j],g[j-1]); cmp2=2*g[0]+g[j]+g[j-1]; sum+=MIN(cmp1,cmp2); } if (j==2) sum+=g[0]+g[1]+g[2]; if (j==1) sum+=MAX(g[0],g[1]); return sum;}int g[1050];int main(){ int t,i,n; scanf("%d",&t); while (t--){ scanf("%d",&n); for (i=0;i<n;i++){ scanf("%d",&g[i]); } sort(g,g+n); printf("%d\n",fun(n,g)); } return 0;}
- POJ 1700 3404 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
- 该出手时就出手,看房产潮起潮落
- 电子钟
- 安全使用assert()函数
- Chapter 3 Stacks and Queues - 3.1
- Spring 3 框架junit4测试时因缺少依赖的jar报错
- POJ 1700 3404 Crossing River
- 九度1011 最大连续子序列
- 由 先序遍历序列和中序遍历序列 求出 后序遍历的序列
- 如何看待阅读?
- Mysql数据类型简明说明
- 不经意间犯的错_临时对象
- 和菜鸟一起学OK6410之最简单字符驱动
- 7.面板上的第一个标签
- mfc笔记-俄罗斯方块