NOIP2012提高组复赛试题
全国信息学奥林匹克联赛(2012)复赛提高组2
2 . 1 •同余方程
〖问题描述〗
求关于的同余方程三1 (句的最小正整数解。
【输入〗
输入文件为
输入只有一行,包含两个正整数用一个空格隔开
【输出〗
输出文件为
输出只有一行,包含一个正整数血即最小正整数解。输入数据保证一定有解。
『输入输出样例〗
『数据范围〗
对于40%的数据,2
L000:对于60%的数据,
2 50 , 000, 000:
对于100%的数据,2, 2, 000, 000, 000
2 •借教室(.)
【问题描述〗
在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。
面对海量租借教室的信息,我们自然希望编程解决这个问
题。
我们需要处理接下来n天的借教室信息,其中第i天学校有个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为d],斗t},表示某租借者需要从第丬天到第t]天租借教室(包括第丬天和第t)天),每天需要租借个教室。
我们假定,租借者对教室的大小、地点没有要求。即对于每份订单,我们只需要每天提供d]个教室,而它们具体是哪些教室,每天是否是相同的教室则不用考虑。
借教室的原则是先到先得,也就是说我们要按照订单的先后顺序依次为每份订单分配教室。如果在分配的过程中遇到一份订单无法完全满足,则需要停止教室的分配,通知当前申请人修改订单。这里的无法满足指从第丬天到第t)天中有至少一天剩余的教室数量不足d)个。现在我们需要知道,是否会有订单无法完全满足。如果有,需要通知哪一个申请人修改
输入〗
输入文件为
第一行包含两个正整数n,m,表示天数和订单的数量。
第二行包含n个正整数,其中第i个数为,表示第i天可用
于租借的教室数量。
接下来有m行,每行包含三个正整数],t],表示租借的数
量,租借开始、结束分别在第几天。
每行相邻的两个数之间均用一个空格隔开。天数与订单均用
从1开始的整数编号。
〖输出〗
输出文件为
如果所有订单均可满足,则输出只有一行,包含一个整数Oc 否则(订单无法完全满足)输出两行,第一行输出一个负整数一1,第二行输出需要修改订单的申请人编号。
〖输入输出样例〗
1 3
3 2 4
4 2 4
【输入输出样例说明〗
第1份订单满足后,4天剩余的教室数分别为0, 3, 2, 3。第2份订单要求第2天到第4天每天提供3个教室,而第3天剩余的教室数为2,因此无法满足。分配停止,通知第
2个申请人修改订单。
〖数据范围〗
对于10%的数据,有1孓孓
10;对于30%的数据,有1
孓孓1000;对于70%的数
据,有1孓孓105;
对于100%的数据,有1孓n, m孓106, 0孓,孓109, 1 <
< <
3 •疫情控制(.
〖问题描述〗
H国有n个城市,这n个城市用条双向道路相互连通构成一棵树,1号城市是首都,也是树中的根节点。
H国的首都爆发了一种危害性极高的传染病。当局为了控制疫清,不让疫情扩散到边境城市(叶子节点所表示的城市),决定
动用军队在一些城市建立检查点,使得从首都到边境城市的每一条路径上都至少有一个检查点,边境城市也可以建立检查点。但特别要注意的是,首都是不能建立检查点的。
现在,在H国的一些城市中已经驻扎有军队,且一个城市可以驻扎多个军队。一支军
队可以在有道路连接的城市间移动,并在除首都以外的任意一个城市建立检查点,且只能在一个城市建立检查点。一支军队经过
一条道路从一个城市移动到另一个城市所需要的时间等于道路的长度(单位:小时)。
请问最少需要多少个小时才能控制疫情。注意:不同的军队
可以同时移动。
〖输入〗
输入文件名为.第一行
一个整数n,表示城市个
数。
接下来的n. 1行,每行3个整数,u、v、w,每两个整数之间用一个空格隔开,表示从城市u到城市v有一条长为w的道路。数据保证输入的是一棵树,且根节点编号为1。
接下来一行一个整数m表示军队个数。
接下来一行m个整数,每两个整数之间用一个空格隔开,分别表示这m个军队所驻扎的城市的编号。
〖输出〗
输出文件为b工
共一行,包含一个整数,表示控制疫情所需要的最少时间。
如果无法控制疫情则输出.1。
『输入输出样例〗
【输入输出样例说明〗
第一支军队在2号点设立检查点,第二支军队从2号点移动到3号点设立检查点,所需时间为3个小时。
『数据范围〗
保证军队不会驻扎在
首都。对于20%的数
据,荃10;
对于40%的数据,2囟50,
()w < 105 ;对于60%的数
据,2 n 1000 , 0 对于80%的数据,2 n引0, 000; 对于100% 的数据,2 n n 50 , 000, ()w < 109 全国信息学奥林匹克联赛(2012)复赛 提高组1 1. e密码 () 【问题描述】 16世纪法国外交家e设计了一种多表密码加密算法------- e 密码。e密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。 在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为 C表示;而密钥是一种参数,是将明文转换为密文或将密文转换 为明文的算法中输入的数据,记为k。在e密码中,密钥k 是一个字母串,山2…。当明文 ?的规则如下表所示: 1m2…时,得到的密文1C2…,其中?,运算 e加密在操作时需要注意: 1. ?运算忽略参与运算的字母的大小写,并保持字母在明文M 中的大小写形式; 2. 当明文M的长度大于密钥k的长度时,将密钥k重复使 用。 例如,明文,密钥时,密文 【输入】 输入文件名为。 输入共2行。 第一行为一个字符串,表示密钥k,长度不超过100,其中仅包含大小写字母。第二行为一个字符串,表示经加密后的密文,长度不超过1000,其中仅包含大小写字母。【输出】 输出文件名为 输出共1行,一个字符串,表示输入密钥和密文所对应的明文。 【输入输出样例】 【数据说明】 对于100%的数据,输入的密钥的长度不超过100,输入的密文的长度不超过1000,且都仅包含英文字母。 3. 国王游戏 () 【问题描述】 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这n位大臣排成一 排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置始终在队伍的最前面。 【输入】 输入文件为。 第一行包含一个整数n,表示大臣的人数。 第二行包含两个整数a和b,之间用一个空格隔开,分别表示国王左手和右手上的整数。 接下来n行,每行包含两个整数a和b,之间用一个空格隔开,分别表示每个大臣左手和右手上的整数。 【输出】 输出文件名为。 输出只有一行,包含一个整数,表示重新排列后的队伍中获奖赏最多的大臣所获得的金币数。 【输入输出样例】 【输入输出样例说明】按1、2、3号大臣这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按1、3、2这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按2、 1、3这样排列 队伍,获得奖赏最多的大臣所获得金币数为2;按2、3、1这 样排列队伍,获得奖赏最多的大臣所获得金币数为9;按3、 1、2这样排列队伍,获得奖赏最多的大臣所获得金币数为2; 按3、2、1这样排列队伍,获得奖赏最多的大臣所获得金币数为9。 因此,奖赏最多的大臣最少获得2个金币,答案输出2。 【数据范围】 对于20%的数据,有K n < 10 , 0 < a、b < 8 ;对于40%的数据, 有K n < 20, 0 < a、b < 8 ; 对于60%的数据,有K n < 100; 对于60%的数据,保证答案不超过10 9; 对于100%的数据,有1 < n < 1,000 , 0 < a、b < 10000 4 .开车旅行 () 【问题描述】 小A 和小B 决定利用假期外出旅行,他们将想去的城市从 1 到N 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市i 的海拔高度为,城市i 和城市j 之间的距离d[] 恰好是这两个城市海拔高度之差的绝对值,即d[i, j] = | ???? - ????| 。 旅行过程中,小A 和小B 轮流开车,第一天小A 开车,之后每天轮换一次。他们计划选择一个城市S 作为起点,一直向东行驶,并且最多行驶X 公里就结束旅行。小A 和小B 的驾驶风格不同,小B 总是沿着前进方向选择一个最近的城市作为目的地,而小A 总是沿着前进方向选择第二近的城市作为目的地(注意:本题中如果当前城市到两个城市的距离相同,则认为离海拔低的那个城市更近)。如果其中任何一人无法按照自己的原则选择目的城市,或者到达目的地会使行驶的总距离超出X 公里,他们就会结束旅行。 在启程之前,小A 想知道两个问题: 1 .对于一个给定的0,从哪一个城市出发,小A 开车行驶的路程总数与小B 行驶的路程总数的比值最小(如果小B 的行驶路程为0 ,此时的比值可视为无穷大,且两个无穷大视为相等)。如果从多个城市出发,小A 开车行驶的路程总数与小 B行驶的路程总数的比值都最小,则输出海拔最高的那个城市。 2. 对任意给定的和出发城市,小A开车行驶的路程总数以及小B行驶的路程总数。 【输入】 输入文件为。 第一行包含一个整数N,表示城市的数目。 第二行有N个整数,每两个整数之间用一个空格隔开,依次表示城市1至U城市N的海拔高度,即H i,也……,,且每个都是不同的。 第三行包含一个整数X o。 第四行为一个整数M,表示给定M组和。 接下来的M行,每行包含2个整数和,表示从城市出发,最多行驶公里。 【输出】 输出文件为。 输出共1行。 第一行包含一个整数S o,表示对于给定的X o,从编号为S o的城市出发,小A开车行驶的路程总数与小B行驶的路程总数的比值最小。 接下来的M行,每行包含2个整数,之间用一个空格隔 开,依次表示在给定的和 下小A行驶的里程总数和小B行驶的里程总数。 【输入输出样例1】 【输入输出样例说明】 Hl=2 H2=3 H3 = l H4=4 各个城市的海拔高度以及两个城市间的距离如上图所示。 如果从城市1出发,可以到达的城市为2,3,4,这几个城市与城市1的距离分别为1,1,2,但是由于城市3的海拔高度低于城市2,所以我们认为城市3离城市1最近,城市2离城市1第二近,所以小A会走到城市2。到达城市2后,前面可以到达的城市为3,4,这两个城市与城市2的距离分别为2,1,所以城市4离城市2最近,因此小B会走到城市4。到达城市4后,前面已没有可到达的城市,所以旅行结束。 如果从城市2出发,可以到达的城市为3,4,这两个城市与城市2的距离分别为2,1,由于城市3离城市2第二近,所以小A会走到城市3。到达城市3后,前面尚未旅行的城市为4,所以城市4离城市3最近,但是如果要到达城市4,则总路程为2+3=5>3,所以小B会直接在城市3结束旅行。 如果从城市3出发,可以到达的城市为4,由于没有离城市3第二近的城市,因此旅行还未开始就结束了。 如果从城市4出发,没有可以到达的城市,因此旅行还未开始就结束了。 【输入输出样例2】 【输入输出样例2 说明】当7 时, 如果从城市1出发,则路线为1 -> 2 -> 3 -> 8 -> 9 ,小 A走的距离为1+2=3,小B走的距离为1+1=2。(在城市1 时,距离小A最近的城市是2和6,但是城市2的海拔更高,视为与城市1第二近的城市,所以小A最终选择城市2 ;走到9后,小A只有城市10可以走,没有第2选择可以选,所以没法做出选择,结束旅行) 如果从城市2出发,则路线为2 -> 6 -> 7 ,小A和小B 走的距离分别为2,4。如果从城市3出发,则路线为3 -> 8 -> 9,小A和小B走的距离分别为2,1。如果从城市4 出发,则路线为4 -> 6 -> 7 ,小A和小B走的距离分别为2,4。 如果从城市5出发,则路线为5 -> 7 -> 8 ,小A和小B 走的距离分别为5,1。如果从城市6出发,则路线为6 -> 8 -> 9,小A和小B走的距离分别为5,1。 如果从城市7 出发,则路线为7 -> 9 -> 10 ,小A 和小B 走的距离分别为2 ,1。 如果从城市8 出发,则路线为8 -> 10 ,小A 和小B 走的距离分别为2 ,0。 如果从城市9 出发,则路线为9 ,小A 和小B 走的距离分别为0 ,0(旅行一开始就结束了)。 如果从城市10 出发,则路线为10 ,小A 和小B 走的距离分别为0 ,0。从城市 2 或者城市4 出发小A 行驶的路程总数与小B 行驶的路程总数的比值都最小, 但是城市2 的海拔更高,所以输出第一行为2 。 【数据范围】对于30%的数据,有 1< N< 20, 1< MC 20;对于40%的 数据,有1C N< 100, 1C M C 100;对于50%的数据,有 1C N C100, 1C M C1,000; 对于70%的数据,有1C N C1,000, 1C M C10,000; 对于100%的数据,有1C N C100,000, 1C M C10,000, - 1,000,000,000 CC 1,000,000,000 , 0CX0C 1,000,000,000 , 1 CC N, 0CC 1,000,000,000 ,数据保证互不相同。 第十九届全国青少年信息学奥林匹克联赛初赛 提高组C++语言试题 竞赛时间:2013 年10 月13 日14:30~16:30 选手注意: ✍试题纸共有12 页,答题纸共有2 页,满分100 分。请在答题纸上作答,写在试题纸上的一律无效。 ✍不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项) 1. 一个32 位整型变量占用()个字节。 A. 4 B. 8 C. 32 D. 128 2. 二进制数11.01 在十进制下是()。 A. 3.25 B. 4.125 C. 6.25 D. 11.125 3. 下面的故事与()算法有着异曲同工之妙。 从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:?从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’? A. 枚举 B. 递归 C. 贪心 D. 分治 4. 1948 年,()将热力学中的熵引入信息通信领域,标志着信息论研究的开端。 A. 冯·诺伊曼(John von Neumann) B. 图灵(Alan Turing) C. 欧拉(Leonhard Euler) D. 克劳德·香农(Claude Shannon) 5. 已知一棵二叉树有2013 个节点,则其中至多有()个节点有2 个子节点。 A. 1006 B. 1007 C. 1023 D. 1024 6. 在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。右图是一个 有5 个顶点、8 条边的连通图。若要使它不再是连通图,至少要删去其中的() 条边。 2.已知 a, b, c, d, e, f, g 七个人中, a 会讲英语; b 会讲英语和汉语; c 会讲英语、意大利语和俄语; d 会讲汉语和日语; e 会讲意大利语和德语; f 会讲俄语、日语和法语; g 会讲德语和法语。能否将他们的座位安排在圆桌旁,使得每个人都能与他身边的人交谈?如果可以,请以“ a b ”开头写出你的安排方案: 。 . 答: a b d f g e c 第十一届(2005) a-b-d-f c-e-g-f g-e-c-f 第十二届(2006) 三.问题求解(共 2 题,每题 5 分,共计10 分) 1.将2006 个人分成若干不相交的子集,每个子集至少有3 个人,并且: (1)在每个子集中,没有人认识该子集的所有人。 (2)同一子集的任何 3 个人中,至少有2 个人互不认识。 (3)对同一子集中任何 2 个不相识的人,在该子集中恰好只有 1 个人认识这两个人。则满足上述条件的子集最多能有___________个? 分析:要使子集数最多,每一子集的人数应最少。每一子集的人数为3,不符合要求,为4也不符合要求,为5可符合要求。 2.将边长为n 的正三角形每边n 等分,过每个分点分别做另外两边的平行线,得到若干个正三角形,我们称为小三角形。正三角形的一条通路是一条连续的折线,起点是最上面的一个小三角形,终点是最下面一行位于中间的小三角形。在通路中,只允许由一个小三角形走到另一个与其有公共边的且位于同一行或下一行的小三角形,并且每个小三角形不能经过两次或两次以上(图中是n=5 时一条通路的例子)。设n=10,则该正三角形的不同的通路的总数为_____________。 分析与解:如果n=2,存在的不同的通路总数为1 如果n=3,存在的不同的通路总数为2=1*2=2! 如果n=4,存在的不同的通路总数为6=1*2*3=3! 如果n=5,存在的不同的通路总数为24=1*2*3*4=4! …… 如果n=10,存在的不同的通路总数为9! 第十三届(2007) 全国信息学奥林匹克联赛(2012)复赛提高组2 2 . 1 •同余方程 〖问题描述〗 求关于的同余方程三1 (句的最小正整数解。 【输入〗 输入文件为 输入只有一行,包含两个正整数用一个空格隔开 【输出〗 输出文件为 输出只有一行,包含一个正整数血即最小正整数解。输入数据保证一定有解。 『输入输出样例〗 『数据范围〗 对于40%的数据,2 L000:对于60%的数据, 2 50 , 000, 000: 对于100%的数据,2, 2, 000, 000, 000 2 •借教室(.) 【问题描述〗 在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。 面对海量租借教室的信息,我们自然希望编程解决这个问 题。 我们需要处理接下来n天的借教室信息,其中第i天学校有个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为d],斗t},表示某租借者需要从第丬天到第t]天租借教室(包括第丬天和第t)天),每天需要租借个教室。 我们假定,租借者对教室的大小、地点没有要求。即对于每份订单,我们只需要每天提供d]个教室,而它们具体是哪些教室,每天是否是相同的教室则不用考虑。 借教室的原则是先到先得,也就是说我们要按照订单的先后顺序依次为每份订单分配教室。如果在分配的过程中遇到一份订单无法完全满足,则需要停止教室的分配,通知当前申请人修改订单。这里的无法满足指从第丬天到第t)天中有至少一天剩余的教室数量不足d)个。现在我们需要知道,是否会有订单无法完全满足。如果有,需要通知哪一个申请人修改 输入〗 输入文件为 第一行包含两个正整数n,m,表示天数和订单的数量。 第二行包含n个正整数,其中第i个数为,表示第i天可用 于租借的教室数量。 接下来有m行,每行包含三个正整数],t],表示租借的数 量,租借开始、结束分别在第几天。 每行相邻的两个数之间均用一个空格隔开。天数与订单均用 从1开始的整数编号。 〖输出〗 输出文件为 如果所有订单均可满足,则输出只有一行,包含一个整数Oc 否则(订单无法完全满足)输出两行,第一行输出一个负整数一1,第二行输出需要修改订单的申请人编号。 〖输入输出样例〗 1 3 3 2 4 4 2 4NOI提高组C++试题
NOIP初赛试题提高组C语言
NOIP2012提高组复赛试题
noip普及组复赛模拟试题12答案