贪心上机练习1.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贪心上机练习1

贪心上机练习1 1. 删数问题 (delete.Pas) 【问题描述】键盘输入一个高精度的正整数n(≤240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 Delete.in [输入格式] n s [输出格式] delete.out 最后剩下的最小数。 [样例输入] 178543 4 [样例输出] 13 2. 取数游戏 (qushu.pas) [问题描述] 给出2*n(n=100)个自然数(数小于等于30000)。游戏双方分别为A方(计算机方)和B方(对奕的人)。只允许从数列两头取数。A先取,然后双方依次轮流取数。取完时,谁取得的数字总和最大为取胜方;双方和相等,属于A胜。试问A方可否有必胜的策略? [输入格式] qushu.in n及2*n个自然数。 [输出格式] qushu.out 共3*n+2行,其中前3*n行为游戏经过。每3行分别为A方所取的数和B方所取的数,及B方取数前应给予的适当提示,让游戏者选择取哪一头的数(L/R—左端或右端)。最后2行分别为A方取得的数和和B方取得的数和。 3. 0/1背包问题 [问题描述] 有一容量为weight的背包。现在要从n件物品中选取若干装入背包中,每件物品i的重量为w[i],价值为p[i]。定义一种可行的背包装载为:背包中物品的总重量不能超过背包的容量,并且一个物品要么全部选取,要么不选取。定义最佳装载是指所装入的物品价值最高,并且是可行的背包装载。 [样例输入] 11 {weight} 4 {n} 2 4 6 7 {w[i]} 6 10 12 13 {p[i]} [样例输出] 0 1 0 1 23 4. 取火柴游戏(match.pas) 有k堆火柴棒,第i堆火柴棒的根数为ni,1=i=n,你和计算机取火柴游戏,取的规则为:每次可以从一堆中取走若干根火柴,也可以一堆都取走,但不许跨堆取,也不许不取。 谁取走最后一根火柴为胜利者。谁没有火柴棒可取,就算输。 例如:k=2,n1=n2=2,A代表你,P代表计算机,若决定A先取: A:(2,2)→(1,2) {从一堆中取一根} P:(1,2)→(1,1) {从另一堆中取一根} A:(1,1)→(1,0) P:(1,0)→ (0,0) {P胜利} 如果决定A后取: P:(2,2)→(2,0) A:(2,0)→ 0,0) {A胜利} 又如k=3,n1=1,n2=2,n3=3,A决定后取: P:(1,2,3)→(0,2,3) A:(0,2,3)→(0,2,2) 编写一个程序,在给出初始状态后,判断是先取必胜还是先取必败,如果是先取必胜,请输出第一次该如何取,如果是先取必败,则输出“lose”。 [输入] match.In 第一行一个整数n,表示堆数。 第二行,n个数表示每堆火柴数。 3 3 6 9 【输出】match.Out 3 {表示第一次从第3堆取4个出来,必胜} 3 6 5 {第一次取后的状态} 样例1: 3 3 6 9 样例2: 输入 4 15 22 19 10 输出 Lose 5.均分纸牌(a.pas) [问题描述]   有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。   移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。   现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。   例如 N=4,4 堆纸牌数分别为:   ① 9 ② 8 ③ 17 ④ 6   移动3次可达到目的:   从 ③ 取 4 张牌放到 ④ (9 8 13 10) - 从 ③ 取 3 张牌放到 ②(9 11 10 10)- 从 ② 取 1 张牌放到①(10 10 10 10)。 [输 入]:a.in   文件格式:   N(N 堆纸牌,1 = N = 100)   A1 A2 … An (N 堆纸牌,每堆纸牌初始数,l= Ai =10000) [输 出]:输出至屏幕。 格式为:   所有堆均达到相等时的最少移动次数。‘ [输入输出样例] a.in:  4  9 8 17 6 屏慕显示:  3

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档