上机编程题目
- 格式:doc
- 大小:54.00 KB
- 文档页数:9
1.删数问题【题目描述】键盘输人一个高精度的正整数N(<=240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和s,寻找一种方案使得剩下的数字组成的新数最小。
输入数据:N 一个高精度的正整数s 要删除N中数字个数输出数据要求:最后剩下的最小数输入输出样例:输入:1352464输出:122.取数游戏【题目描述】给出2n(n<=100)个自然数(数小于等于30000)。
游戏双方分别为A方(计算机方)和B 方(对弈的人)。
只允许从数列两端取数。
A先取,然后双方依次轮流取数。
取完时,谁取的数字总和最大为取胜方;若双方和相等,属于A胜。
试问A方是否有必胜的策略。
输入数据:N2*N个自然数输出数据要求:共2N+2行,其中前2*N行为游戏经过。
每2行分别为A方所取的数和B方所取的数(L/R----左端或右端)。
最后2行分别为A方取得的数和B方取得的数和。
输入输出样例:输入:412 53 46 78 89 10 35 15输出:A:L->12B: L->53A: L->46B: L->78A: L->89B: R->15A: R->35B: L->10A: 182B: 1563. 数列极差问题【题目描述】在黑板上写了N个正整数做成的一个数列,进行如下操作:每一次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上剩下一个数,在所有按这种操作方式最后得到的数中,最大的max,最小的为min,则该数列的极差定义为M=max-min。
编程任务:对于给定的数列,编程计算出极差M。
输入数据:N个正整数做成的一个数列输出数据要求:共3行,其中第一行显示某操作方式得到最大值max,第二行显示某操作方式得到的最小值min,最后1行显示所计算得出的极差M=max-min。
输入输出样例:输入:2 1 4 3输出:max=41min=28M=max-min=134. 登山机器人问题【题目描述】登山机器人是一个极富挑战性的高技术密集型科学研究项目,它为研究发展多智能体系统和多机器人之间的合作与对抗提供了生动的研究模型。
登山机器人可能携带有限的能量。
在登山过程中,登山机器人需要消耗一定的能量,连续攀登的路程越长,其攀登速度就越慢。
在对m种不同类型的机器人做性能测试时,测定出每个机器人连续攀登1米,2米,……,k米时所用的时间。
现在要对这m个机器人做综合性能测试,举行机器人接力攀登演习,攀登的总高度为n米,规定每个机器人至少攀登1米,最多攀登k米,而且每个机器人攀登的高度必须是整数,即只能在整米处接力。
安排每个机器人攀登适当的高度,使完成接力攀登用的时间最短。
输入数据:第1行是正整数m,n和s分别表示机器人的个数、每个机器人最多可以攀登的高度和接力攀登的总高度。
接下来的m行中,每行有n个正整数,分别表示机器人连续攀登1,2,…,n 米所用的时间。
输出数据要求:输出登山机器人接力到达终点的最短攀登时间。
输入输出样例:输入:5 10 2524 49 75 102 130 160 192 230 270 32023 48 75 103 139 181 224 274 344 41522 49 80 180 280 380 480 580 680 78025 51 80 120 170 220 270 320 370 42023 49 79 118 158 200 250 300 350 400输出:21355. 汽车加油问题【题目描述】一辆汽车加满油后可行驶n公里。
旅途中有若干个加油站。
设计一个有效算法使沿途加油次数最少。
对于给定的n (n <= 5000 )和k (k <= 1000) 个加油站位置,编程计算最少加油次数。
输入数据:第一行有2 个正整数n 和k,表示汽车加满油后可行驶n 公里,且旅途中有k 个加油站。
接下来的1 行中,有k+1 个整数,表示第k 个加油站与第k-1 个加油站之间的距离。
第0 个加油站表示出发地,汽车已加满油。
第k+1 个加油站表示目的地。
输出数据要求:输出最少加油次数。
输入输出样例:输入:7 71 2 3 4 5 1 6 6输出:46.0-1背包问题【题目描述】给定一个载重量为weight的背包,n个物品,其重量分别为w[i],价值分别为p[i],1<=i<=n,物体或者被装入背包,或者不被装入背包,只有两种选择。
要求把物品装入背包,并使包内物品价值最大。
(要求任选两种贪心策略)输入数据:第一行背包的载重量weight第二行物品个数n第三行n个物品的重量第四行n个物品的价值输出数据要求:1. 贪心策略:******X=(x1,x2,x3,……,xn) xi=0 或 xi=1背包内物品最大价值2. 贪心策略:******X=(x1,x2,x3,……,xn) xi=0 或 xi=1背包内物品最大价值输入输出样例:输入:1142 4 6 76 10 12 13输出:1 贪心策略:**0 1 0 1232 贪心策略:**1 1 0 0167.最优装载问题【题目描述】有一批集装箱要装入一艘载重量为C的轮船,其中集装箱i重量显wi,最估装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。
输入数据:第一行轮船的载重量C第二行集装箱个数n第三行n个集装箱的重量输出数据要求:X=(x1,x2,x3,……,xn) xi=0 或 xi=1轮船上集装箱的个数,轮船上集装箱的总重量输入输出样例:输入:250015100 200 300 102 900 650 245 750 630 510 530 230 180 360 530 690 输出:1 1 1 1 0 0 1 0 0 1 0 1 1 1 0 09, 22458.货币支付问题【题目描述】设有n种不同面值的硬币,每种硬币的面值记为Ti (1≤i≤n),每种面值的硬币个数记为Ci(1≤i≤n),设计一个算法找出当支付金额为M时,支付的硬币个数为最少的支付方案输入数据:第一行支付金额M第二行硬币种类第三行硬币的面值第四行硬币的个数输出数据要求:支付硬币个数:支付方案:面值: T1 T2 T3 …… Tn个数: D1 D2 D3 …… Dn输入输出样例:输入:2864100 50 10 15 86 20输出:12100 50 10 12 13 69.邮票贴付问题【题目描述】设有n种不同面值的邮票,每种邮票的面值记为Ti (1≤i≤n),每种面值的邮票张数记为Ci(1≤i≤n),设计一个算法找出当贴付邮值为M时,贴付的邮票张数为最少的贴付方案。
输入数据:第一行贴付邮值M第二行邮票面值种类第三行邮票的面值第四行邮票的个数输出数据要求:贴付邮票总张娄数:贴付方案:面值: T1 T2 T3 …… Tn张数: D1 D2 D3 …… Dn输入输出样例:输入:2704200 100 50 105 5 5 5输出:4200 100 50 101 0 1 2贪心算法专题实例解析【例1】删数问题Description键盘输人一个高精度的正整数N(<=240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和s,寻找一种方案使得剩下的数字组成的新数最小。
InputnsOutput最后剩下的最小数【例2】取数游戏Description给出2n(n<=100)个自然数(数小于等于30000)。
游戏双方分别为A方(计算机方)和B方(对弈的人)。
只允许从数列两头取数。
A先取,然后双方依次轮流取数。
取完时,谁取的数字总和最大为取胜方;若双方和相等,属于A胜。
试问A 方是否有必胜的策略。
Input键盘输入N和2*N个自然数Output共3N+2行,其中前3*N行为游戏经过。
每3行分别为A方所取的数和B方所取的数及B方取数前应给予的适当提示,让游戏者选择哪一头的数(L/R----左端或右端)。
最后2行分别为A方取得的数和裕B方取得的数和。
【例3】0/1背包问题Description给定一个载重量为weight的背包,n个物品,其重量分别为w[i],价值分别为p[i],1<=i<=n,物体或者被装入背包,或者不被装入背包,只有两种选择。
要求把物品装入背包,并使包内物品价值最大。
Sample Input11 {weight}4 {n}2 4 6 7 {w[i]}6 10 12 13 {p[i]}Sample Output0 1 0 123【例4】活动选择Description假设有一个需要使用某一资源的n个活动组成的集合是,s{1,2,…,n}。
该资源一次只能被一个活动所占用,每个活动有一个开始时间b[i]和结束时间e[i] (b[i]<e[i])。
若b[i]>=e[j]或b[j]>=e[i],则活动i和活动j兼容。
我们的任务是:选择由互相兼容的活动组成的最大集合。
Input (in.tzt)NB[1] e[1]…………B[n] e[n]Output (out.txt)共两行,第一行为满足要求的活动占用的时间t,第2行为最大集合中的活动序号,每个数据之间用一个空格隔开。
【例5】雇佣计划Description一位管理项目的经理想要确定每个月需要的工人,他当然知道每月所需的最少工人数.当他雇佣或解雇一个工人,会有一些额外支出.一旦一个工人被雇佣,即使他不工作,他也将得到工资.这位经理知道雇佣一个工人的费用,解雇一个工人的费用和一个工人的工资.现他在考虑一个问题:为了把项目的费用工致在最低,他将每月雇佣或解雇多少个工人.Input第1行:1个整数n(n<=12),表示月数。
第2行:3个用空格分开的整数h, s, f,分别表示雇佣一个工人的费用;一个工人的月工资和解雇一个工人的费用。
第3行:n个用空格分开的整数,分别表示每个月最少需要的工人数(每个月的工人数<=1000)Output第1行:1个整数,表示项目的最小总费用Sample Input34 5 610 9 11Sample Input199【例6】旅行家预算(NOIP1999年高中组第3题)题目描述:一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。
给定两个城市之间的距离D1、汽车油箱的量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离DIC i、每升汽油价格Pi(i=1,2,……N)。
计算结果四舍五入至小数点后两位。
如果无法到达目的地,则输出“No Solution”。