收藏 分销(赏)

信息奥赛测试题 (2).doc

上传人:xrp****65 文档编号:8973109 上传时间:2025-03-09 格式:DOC 页数:5 大小:46KB
下载 相关 举报
信息奥赛测试题 (2).doc_第1页
第1页 / 共5页
信息奥赛测试题 (2).doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述
2007年山东省信息学奥林匹克夏令营提高班测试题 说明: 1.提高一班的同学完成第1、2、3、5题; 2.提高二班的同学完成第1、4、5、6题; 3.把四个题目的源程序放在一个文件夹(以“姓名+学校”命名)下提交,所有题目的内存限制为2M,时限为1S。 1.数制转换(jinzhi) 【题目描述:】 有一种R数制的基数是3,权值可以取 -1,0,1,并且分别用符号 -,0,1表示。这种R进制和十进制可以相互转化: 如: R进制 十进制 101 10 (1*32+0*31+1*30=10) -0 -3 (-1*31+0*30) -1 -2 (-1*31+1*30) 编程要求:输入十进制数n,输出n的R进制数,要求前面不能有多余的0,如:十进制数10的R进制数表示成:101,不能写成0101。 【输入】:(jinzhi.in) 十进制数N,范围:-109<=N<=109。 【输出】:(jinzhi.out) 一行数,N的R进制表示。中间不能有多余的空格。 【样例输入】: 10 【样例输出】: 101 2.合并石子(stone) 【问题描述:】 小Ray在河边玩耍,无意中发现一些很漂亮的石子堆,于是他决定把这些石子搬回家。河滩上共有 n堆石子,小Ray在把石子搬回家之前首先要把这n堆石子合并为一堆石子。已知小Ray每次可以选择其中的两堆石子合并为一堆,合并一次石子他要消耗的体力是两堆石子的数量和。 请计算小Ray把n堆石子合并成一堆最少消耗的体力值是多少。 【输入:】(stone.in) 第一行:n(<=30000). 第二行:那个用空格隔开的数,分别表示n堆石子的数量。 【输出:】(stone.out) n堆石子合并成一堆所消耗的最小体力值。 【样例输入:】 3 1 2 4 【样例输出:】 10 3.产生数(change) 【问题描述:】   给出一个正整数 n(n<10^50) 和 k 个变换规则(k<=15)。   每个变换规则是指:    一位数可变换成另一个一位数:规则的右部不能为零。   例如:n=234。有规则(k=2):     2-> 5     3-> 6   上面的整数 234 经过变换后可能产生出的整数为(包括原数):    234    534    264    564   共 4 种不同的产生数。 【任务:】   给出一个整数 n 和 k 个变换规则。 求经过任意次的变换(0次或多次),能产生出多少个不同整数。仅要求输出个数。 【输入:】(change.in) 第一行:n。 第二行:k。 以下k行:每行两个一位数:x y,中间一个空格,表示一个变换规则:x可以变为y。 【输出:】(change.out) 一个整数(满足条件的个数): 【输入样例:】 234 2 2 5 3 6 【样例输出:】 4 4.最优时间表问题(table) 【问题描述:】 一台精密仪器的工作时间为n个时间单位.与仪器工作时间同步进行若干仪器维修程序.一旦启动维修程序,仪器必须进入维修程序.如果只有一个维修程序启动,则必须进入该维修程序.如果在同一时刻有多个维修程序,可任选进入其中的一个维修程序.维修程序必须从头开始,不能中间插入.一个维修程序从第s个时间单位开始,持续t个时间单位,则该维修程序在第s+t-1个时间单位结束.为了提高仪器使用率,希望安排尽可能短的维修时间. 编程任务:对于给定的维修程序时间表,编程计算最优时间表. 【输入:】(table.in): 第1行有2个正整数n和k..n表示仪器的工作时间单位,k是维修程序数. 在接下来的k行中,每行有2个表示维修程序的整数s和t,该维修程序从第s个时间单位开始,持续t个时间单位. 【输出:】(table.out) 一个数,最短维修时间. 【输入样例】: 15 6 1 2 1 6 4 11 8 5 8 1 11 5 【输出样例:】 11 5.商店购物(shopping) 【问题描述:】 在商店中,每一种商品都有一个价格(用整数表示)。例如,一朵花的价格是 2 元,而一个花瓶的价格是 5元 。为了吸引更多的顾客,商店举行了促销活动。 促销活动把一个或多个商品组合起来降价销售,例如: 三朵花的价格是 5元 而不是 6元, 两个花瓶和一朵花的价格是 10元 而不是 12元。 编写一个程序,计算顾客购买一定商品的花费,尽量利用优惠使花费最少。尽管有时候添加其他商品可以获得更少的花费,但是你不能这么做。 对于上面的商品信息,购买三朵花和两个花瓶的最少花费是:以优惠价购买两个花瓶和一朵花(10元),以原价购买两朵花(4元)。 【输入:】 (shopping.in):包括一些商店提供的优惠信息,接着是购物清单。 第一行 优惠商品的种类数(0 <= s <= 99)。 第二行..第s+1 行 每一行都用几个整数来表示一种优惠方式。第一个整数 n (1 <= n <= 5),表示这种优惠方式由 n 种商品组成。后面 n 对整数 c 和 k 表示 k (1 <= k <= 5)个编号为 c (1 <= c <= 999)的商品共同构成这种优惠,最后的整数 p 表示这种优惠的优惠价(1 <= p <= 9999)。优惠价总是比原价低。 第 s+2 行 这一行有一个整数 b (0 <= b <= 5),表示需要购买 b 种不同的商品。 第 s+3 行..第 s+b+2 行 这 b 行中的每一行包括三个整数:c ,k ,和 p 。c 表示唯一的商品编号(1 <= c <= 999),k 表示需要购买的 c 商品的数量(1 <= k <= 5)。p 表示 c 商品的原价(1 <= p <= 999)。最多购买 5*5=25 个商品。 【输出:】 (shopping.out): 只有一行,输出一个整数:购买这些物品的最低价格。 【输入样例:】 2 1 7 3 5 2 7 1 8 2 10 2 7 3 2 8 2 5 【输出样例:】 14 6.没有上司的晚会(evening) 【问题描述:】 有个公司要举行一场晚会。为了能玩得开心,公司领导决定:如果邀请了某个人,那么一定不会邀请他的上司(上司的上司,上司的上司的上司……都可以邀请)。每个参加晚会的人都能为晚会增添一些气氛,求一个邀请方案,使气氛值的和最大。 【输入:】(evening.in) 第1行一个整数N(1<=N<=6000)表示公司的人数。 接下来N行每行一个整数。第i行的数表示第i个人的气氛值x(-128<=x<=127)。 接下来每行两个整数L,K。表示第K个人是第L个人的上司。 输入以0 0结束。 【输出:】(evening.out) 一个数,最大的气氛值和。 【输入样例:】 7 1 1 1 1 1 1 1 1 3 2 3 6 4 7 4 4 5 3 5 0 0 【输出样例:】 5
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服