poj1700多种选择的贪心

原创 2015年07月06日 18:06:59
//每次船上至少保证一个人否则船无法移动。
//那么需要安排过去的人以及回来需要的人
//那么每次来回速度最快的人必须在,这样可以节省时间
//分为两种情况:最快的位一组,然后交替回来 
//每次送人的时候都有两种情况需要考虑
//第二种情况:每次最快的带着最慢的一起走
//考虑特殊的N=4的情况最小的a,b,最大的y,z 把y,z都运过河的时间同时a,b仍然在左边的时候
//那么 b + a  + z + b为第一种情况 2*b + a + z
//对于第二种情况显然总时间为 z + a + y + a = 2*a + y+z 
//那么就有不等式   2*b  ? a + y
#include <iostream>
#include <algorithm>
using namespace std;

#define For(i,a,b) for(int i=a;i<b;++i)
static int w[1005];
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int N;
		scanf("%d",&N);
		For(i,0,N)
		{
			scanf("%d",&w[i]);
		}
		sort(w,w+N);
		int ans = 0;
		int rest = N;
		int rmax = N-1;
		if (N==1){
		 printf("%d\n",w[0]);
		 continue;
		}
		while(rest>0)
		{
			if (rest==2)//最后剩下肯定是最小的两个
			{
			   ans+= w[1];
			   break;
			}
			else if (rest==3)
			{
				ans+=w[2]+w[0]+w[1];
				break;
			}
			else
			{
				//每次开始时候最小的两个均在当前左边
				if (2*w[1]<w[0]+w[rmax-1])//第一种情况最快的2个交替
				{
					ans += w[1] + w[0] + w[rmax] +w[1];
				}
				else//第二种情况用最大的带着他们过河
				{
					ans +=w[rmax]+w[0]+w[rmax-1]+w[0];
				}
				rmax-=2;
				rest-=2;
			}
		}

		printf("%d\n",ans);

	}
	return 0;
}

部分背包问题贪心选择性质的证明

最近算法课讲到贪心算法,感觉书本上对bufentanxin
  • always_ming
  • always_ming
  • 2014年11月01日 13:13
  • 3300

【算法导论】贪心算法之活动选择问题

贪心算法解决活动选择问题
  • cyp331203
  • cyp331203
  • 2015年01月27日 20:43
  • 2546

活动选择问题(贪心算法vs动态规划)

活动选择问题贪心算法vs动态规划 基础知识 1-1动态规划 1-2贪心算法 1-3贪心算法vs动态规划 活动选择问题描述 活动选择问题最优子结构 活动选择问题算法设计4-1贪心算法之选择最早结束活动 ...
  • ii1245712564
  • ii1245712564
  • 2015年05月01日 16:25
  • 2225

POJ 1018 通信设备购买方案的选择 贪心

本题很简单,但是还是WA了几次,主要原因是 1、变量初始化的位置要非常小心,何时需要在下一次循环重复记录何时初始化,由于这个原因WA太可惜了 2、输出保留三位小数的格式控制一定要注意 主要算法思...
  • yangliuy
  • yangliuy
  • 2011年12月24日 11:32
  • 1492

选择陪审员 POJ1015 Jury Compromise 动态规划DP 搜索DFS 贪心

选择陪审员 POJ1015 Jury Compromise 动态规划DP 搜索DFS 贪心 感觉比较难的一题,即使做第三遍也感觉比较吃力。题目描述很清楚,英文理解无障碍。此题实质:n个物体中选m个。 ...
  • sj13051180
  • sj13051180
  • 2011年07月20日 11:23
  • 1317

poj1328Radar Installation(贪心+区间选择)

Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8021...
  • luckcircle
  • luckcircle
  • 2016年12月13日 17:00
  • 982

计算机算法设计与分析(第3版)实验(用分治法实现元素选择 用动态规划法求解0/1背包问题 用贪心算法求解Prim算法 用回溯法求解N后问题 用分支限界法实现旅行售货员问题 )

  • 2009年06月11日 11:07
  • 310KB
  • 下载

最小生成树的Prim算法(贪心选择)

  • 2010年12月09日 17:13
  • 5KB
  • 下载

POJ 3190 Stall Reservations(贪心—区间问题+优先队列维护)

Stall Reservations Time Limit: 1000MS Memory Limit: 65536K Total Su...
  • zwj1452267376
  • zwj1452267376
  • 2015年12月28日 22:13
  • 481

poj2253 dijkstra()贪心解瓶颈路问题

这道题理解了好久,又做了好久,可能是对dijkstra理解得不够彻底,跪了好多天Orz.. 网上搜索了很多,都只有单纯的解题模式Orz.... 后来才知道这是一道瓶颈路问题,解决方案一般都是用最小...
  • ZzZz_ing
  • ZzZz_ing
  • 2016年08月09日 15:17
  • 606
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj1700多种选择的贪心
举报原因:
原因补充:

(最多只允许输入30个字)