金块问题

题目:老板有一袋金块(共 n 块,n 是 2 的幂( n ≥ 2 )),最优秀的雇员得到其中最重的一块,最差的雇员得到其中最轻的一块。假设有一台比较重量的仪器,希望用最少的比较次数找出最重和最轻的金块。并对自己的程序进行复杂性分析。

import java.util.Scanner;

public class Main {

	private static void minmax(int i, int j, int[] gold, int[] result) {

		int[] ltemp = new int[2];
		int[] rtemp = new int[2];

		if (i == j - 1) {
			if (gold[i] <= gold[j]) {
				result[0] = gold[i];
				result[1] = gold[j];
			} else {
				result[0] = gold[j];
				result[1] = gold[i];
			}
		} else {
			int mid = (i + j) / 2;
			minmax(i, mid, gold, ltemp);
			minmax(mid + 1, j, gold, rtemp);

			if (ltemp[0] <= rtemp[0]) {
				result[0] = ltemp[0];
			} else {
				result[0] = rtemp[0];
			}

			if (ltemp[1] >= rtemp[1]) {
				result[1] = ltemp[1];
			} else {
				result[1] = rtemp[1];
			}

		}

	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		while (scanner.hasNext()) {
			int n = scanner.nextInt();

			int[] gold = new int[n];
			for (int i = 0; i < n; i++) {
				gold[i] = scanner.nextInt();
			}

			int[] result = new int[2];
			minmax(0, n - 1, gold, result);

			System.out.println("min: " + result[0]);
			System.out.println("max: " + result[1]);
		}
		scanner.close();
	}
}

金块问题

时间: 2025-01-10 17:48:30

金块问题的相关文章

金块问题-排序-找最大最小

问题 D: 金块问题 时间限制: 1 Sec  内存限制: 64 MB提交: 18  解决: 17[提交][状态][讨论版] 题目描述 一个老板有一袋金块,里面有n块金子.每个月,老板会从袋子中拿出两个金块奖励两名期雇员.按规矩,最优秀的雇员将得到袋中最重的金块,排名第二的雇员将得到袋中最轻的金块.周期性地往袋中加入新的金块,那么每个月他都要找出最重和最轻的金块.假设有一台比较质量的仪器,我们希望用尽量少的比较次数找出最重和最轻的金块. 输入 第1行只有一个整数n(2≤n≤100000).第2行

高考语文必备古诗文64篇

54.阿房宫赋 (杜牧) 六王毕,四海一.蜀山兀,阿房出.覆压三百余里,隔离天日.骊山北构而西折,直走咸阳.二川溶溶,流入宫墙.五步一楼,十步一阁:廊腰缦回,檐牙高啄:各抱地势,钩心斗角.盘盘焉,囷囷焉,蜂房水涡,矗不知其几千万落.长桥卧波,未云何龙?复道行空,不霁何虹?高低冥迷,不知西东.歌台暖响,春光融融:舞殿冷袖,风雨凄凄.一日之内,一宫之间,而气候不齐. 妃嫔媵嫱,王子皇孙,辞楼下殿,辇来于秦.朝歌夜弦,为秦宫人.明星荧荧,开妆镜也:绿云扰扰,梳晓鬟也:渭流涨腻,弃脂水也:烟斜雾横,焚椒

好玩的智力小游戏(海盗分金)

 海盗的难题(Ian Stewart) 数学的逻辑有时会导致看来十分怪异的结论. 一般的规则是.假设逻辑 推理没有漏洞. 那么结论就必然站得住脚,即使它与你的直觉矛盾. 1998 年9月,加利福尼亚州帕洛阿 尔托的Stephen M. Omohundro寄给我一道难题, 它恰好就属于这一类.这难题已经流传 了至少十年,可是Omohundro对它作 了修改,使它的逻辑问题变得分外复杂了. 先来看看此难题原先的形状. 10名海盗抢得了窖藏的100块金子,并打算 瓜分这些战利 品.这是一些讲民主的

AAAI,ICML,IJCAI,AI,TPAMI,JMLR,DKE,TNNLS,SIGIR,TKDE,KDD

AAAI:  AAAI Conference on Artificial Intelligence ICML: International Conference of Machine Leanring IJCAI: International Joint Conference on Artificial Intelligence AI: Artificial Intelligence TPAMI:IEEE Trans on Pattern Analysis and Machine Intelli

聪明人的游戏,初中版 之目录

第一章算法概述    第1课 算法的概念    第2课 结构化程序设计思想    第3课 算法的时空复杂度 第二章字符串处理与进制转换    第1课 贝贝的交通指挥系统    第2课 贝贝的图形    第3课 贝贝的加密工作    第4课 贝贝的保险库密码    第5课 贝贝的数学课    第6课 贝贝与外星人    本章知识归纳    本章综合练习 第三章枚举算法    第1课 桐桐的计算    第2课 桐桐的数学难题    第3课 素数的秘密    第4课 桐桐的思考    第5课 桐桐的研

张五常广州演讲

本文整理自张五常1月16日在广州白云国际会议中心岭南厅的演讲 从1994到2007这十三年,中国的发展是人类历史上从来没有见过的好.可惜接着就未富先骄,这种发展止于2008年. 目前谈到经济,一定要说到中国经济的困难,同时要说怎么处理.怎么处理呢?可以处理!但是我的话你们要听才行——1980.1990年代,我写的那些文章.讲的那些话,依稀觉得有点效果,但是最近十年八年以来,我的话都没有人听,影响绝对是零. 三十多年前,我43岁,开始跟进中国问题的研究,政府派了助手来帮助我,从那时起到现在,只要我

GCPC2014 G Gold Rush

题意:有一块2^n大的金块,你每一次只能把一块变成相同的两快(当然大小是原来的1/2),问你现在有容量a,b,a+b = 2^n的背包,多少次能够使得a,b把这所有的金块都装下去. 解题思路:递归. 解题代码: 1 // File Name: f.cpp 2 // Author: darkdream 3 // Created Time: 2015年03月15日 星期日 12时19分58秒 4 5 #include<vector> 6 #include<list> 7 #includ

HTML5游戏实战之160代码实现黄金矿工

黄金矿工是一款在flash时代红极一时的游戏,变种非常多,今天介绍它的html5版本制作过程. 这是一款结合了商业元素的游戏,在游戏的某些页面上有企业的品牌露出,这也是html5游戏盈利的一种方式,您可以根据需要替换成需要的品牌. 首先show一下最终成果,PC玩家点这里 手机玩家扫描二维码: 如果您需要在本游戏的基础上加以改进点这里. 在开始介绍游戏开发步骤前,先打个广告,对html5游戏开发,TangIDE 或者Cantk 感兴趣的朋友请扫描下方二维码,加入七巧板官方QQ交流群,一起交流做h

打字文章

我与父亲不相见已二年余了,我最不能忘记的是他的背影. 那年冬天,祖母死了,父亲的差使也交卸了,正是祸不单行的日子.我从北京到徐州打算跟着父亲奔丧回家.到徐州见着父亲,看见满院狼藉的东西,又想起祖母,不禁簌簌地流下眼泪.父亲说: “事已如此,不必难过,好在天无绝人之路!” 回家变卖典质,父亲还了亏空:又借钱办了丧事.这些日子,家中光景很是惨淡,一半为了丧事,一半为了父亲赋闲.丧事完毕,父亲要到南京谋事,我也要回北京念书,我们便同行. 到南京时,有朋友约去游逛,勾留了一日:第二日上午便须渡江到浦口,