NOIP模拟试题三
NOIP初赛模拟考试题及答案解析修订版
N O I P初赛模拟考试题及答案解析集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]信息学奥林匹克联赛初赛模拟试题(普及组C语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一.选择一个正确答案代码(A/B/C/D/E),填入每题的括号内(每题1.5分,共30分)1.被誉为“人工智能之父”的是()。
A.冯·诺依曼。
B.巴贝奇。
C.文顿·瑟夫和卡恩。
D.阿兰·图灵。
E.弗雷德里克·特曼。
2.下列哪个不是CPU(中央处理单元)()。
A.IntelItaniumB.DDRSDRAMC.AMDAthlon64D.AMDOpteronE.IBMPower53.常见的邮件传输服务器使用()协议发送邮件。
A.HTTPB.SMTPC.TCPD.FTPE. POP34.下列无符号数中,最小的数是()。
10 C.(37)8 D.(2A)165.下列哪个软件属于操作系统软件()。
A.MicrosoftWordB.PhotoshopC.FoxmailD.WinRARE.RedHatLinux6.下列哪个不是计算机的存储设备()。
A.文件管理器B.内存C.高速缓存D.硬盘E.U盘7.组成’教授’(jiaoshou)’副教授’(fujiaoshou)与’讲师’(jiangshi)这三个词的汉字,在GB2312-80字符集中都是一级汉字.对这三个词排序的结果是()。
A教授,副教授,讲师B.副教授,教授,讲师C讲师,副教授,教授D.副教授,讲师,教授8.彩色显示器所显示的五彩斑斓的色彩,是由红色、蓝色和()色混合而成的。
A.紫B.白C.黑D.绿E.橙9.以下哪个软件不是即时通信软件()。
A.网易泡泡B.MSNMessengerC.GoogleTalkD.3DSMaxE.QQ10.一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行相互转换的设备,这种设备是()。
NOIP模拟
NOIP 复赛模拟51、求和(sum.cpp)问题描述:输入整数n ,求1~n 之间所有数的和。
输入格式:第一行为正整数t(≤100),表示数据组数;接下来t 行,每行一个整数n ,n 的绝对值小于10000。
输出格式:对于每组数据,输出相应的结果。
输入输出样例:2、超级阶乘(factorials.cpp)问题描述:阶乘是我们熟知的,n!=n*(n-1)*(n-2) (1)下面我们来定义超级阶乘:n!!...!(一共有k 个!):n!!...!= n*(n-k)*(n-2k)…*t ,当k 不能整除n 时,t=n%k ,否则t=k 。
例如:10!!!=10*7*4*1;10!!=10*8*6*4*2。
下面输入n,k ,计算其值。
输入格式:一个整数n(1≤n ≤1000),然后一个空格,然后是k 个叹号(1≤k ≤20)。
输出格式:对应的超级阶乘的精确值。
输入输出样例: 3、线段包含(segments.cpp)问题描述:输入n 条线段L i ,当一条线段L 1的两个端点在另一条线段L 2的两个端点之内,则定义L 1完全被L 2包含,要求L 1和L 2的端点必须都不相同。
如(-1,2)就被(-3,5)完全包含,而(-1,2)不能被(0,5)包含,也不能被(-1,5)包含。
它的一个完全包含子集指的是k 条线段,这k 条线段可以排成一个序列P i (1≤i ≤k),对于每一个i(1<i ≤k),P i 可以完全包含P i-1。
编程找出k 的最大值。
输入格式:第一行是正整数n (≤500);接下来n 行,每行两个正整数a,b(-10000≤a<b ≤10000),表示线段(a,b)。
保证每两条线段都不相同。
输出格式:仅一个正整数k ,表示完全包含子集的最大值。
输入输出样例:样例说明:第2、1、3条线段可以构成一个完全包含子集。
4、二进制好串(binary.cpp)问题描述:我们定义没有1相邻的全01串为“好串”,并把所有n 位的“好串”按长度和字典序进行排序,当n=3时,序列为:000,001,010,100,101,……。
陈颖老师NOIP模拟赛分析(三)
分析
Problem #1: 12345(five) ( ) 题意简述: 题意简述: 在1到5这五个数字中任取n个时能组 成多少个数I,满足I mod 3=1。输出个数 mod 100007。
分析: 分析: 1. 由于不存在0,所以构成数的时候不需要特别考 虑首位; 2. 数学知识:一个整数除以3的余数有三种情况, 为0、1、2; 3.对于任取n个数组成整数I mod 3=1时,可有以下 三种情况: (1) 前n-1位数 mod 3余2+被3除余2的数字(即2, 5); (2)前n-1位数 mod 3余1+被3整除的数字(即3); (3)前 n-1位被 mod 3余0+被3除余1的数字(即1, 4)。
Problem #4: 图论(change) 题意简述 给出一个有重边无自环的图,要求去掉尽量 少的边,使得最后的图中不存在奇数条边的环。
分析: 首先需要分析的是这个目标图具有什么性质 呢? 实际上,这类不存在奇数边环的图,可以看 做一个叫做二分图的特殊图。 什么叫做二分图呢? 设G=(V,E)是一个无向图,如果顶 点V可分割为两个互不相交的子集(A,B), 并且图中的每条边(i,j)所关联的两 个顶点i和j分别属于这两个不同的顶点 集(i in A,j in B),则称图G为一个二分图。 如右图就是一个二分图。
2、分析搜索顺序,从贪心角度小物品应优先考 虑,将物品的质量从小到大排序后。 搜索方式:对于一个K值,按从质量大至小的 顺序(思考从小至大顺序一样吗?)搜索满足质量 满足质量 小等于第K个的物品是否能放入 个的物品是否能放入。 小等于第 个的物品是否能放入。 如何选择K? 如何选择 ? 1)枚举K值 (1)枚举K值。 (2)由于物品的质量有序,使用二分的来枚举 )由于物品的质量有序, K值,对于当前 值,可行继续二分找大的 值,不 值 对于当前K值 可行继续二分找大的K值 可行二分找小的K值 找到一个可行的最大K值为止 值为止。 可行二分找小的 值,找到一个可行的最大 值为止。
NOIP初赛模拟试题byOIStore[c ]
NOIP初赛模拟试题 by OI Store(提高组C++语言二小时完成)一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案。
)1.建立了计算机最主要的结构原理的人是()。
A. 图灵B. 比尔·盖茨C. 冯·诺伊曼D. 克拉拉·丹E. 哥德尔2.设a、b、c是三个布尔型(boolean)的变量,则表达式(a∨¬b)∧(b∨¬c)∧(c∨¬a)∧(a∧¬a)∧(b∧¬b)的值()。
A. 始终为trueB. 始终为falseC. 当且仅当c为true时为falseD. 当且仅当a与b均为true时为trueE. 依赖于a、b、c三者的值3.设a、b为两个浮点(float)型变量,下面的表达式中最有可能为真的是()。
A. a=bB. a*a+2*a*b+b*b=(a+b)*(a+b)C. (a+b)*(a-b)+b*b-a*a<0.0001D. a/b=1/(b/a)E. sqrt(a)*sqrt(b)=sqrt(a*b)4.下面的数据中,在编程中用长整型(longint)表示最恰当的是()。
A. 宇宙中的原子数目B. 一头大象的体重(用吨表示)C. 姚明的身高(用厘米表示)D. 一个山村的准确人口数E. 从现在(2006年)到2008奥运会开幕的倒计时秒数5.一个三叉树(即每个节点最多有三个孩子)中,有k个孩子的结点数目表示为S(k),则下列关系一定成立的是()。
A. S(0)=2*S(3)+S(2)-1B. S(0)>3*S(3)+2*S(2)-1C. S(0)<3*S(3)+2*S(2)+1D. S(0)>2*S(3)+S(2)E. S(0)<=3*S(3)+2*S(2)6.佳佳在网上购买了一个空间,建设了一个网站。
那么,他向网站上上传网页时最有可能采用的网络协议是()。
NOIP《 数据结构》练习题及答案
NOIP《数据结构》练习题及答案NOIP《数据结构》练习题及答案数据结构是计算机科学中非常重要的一个概念,它指的是组织和存储数据的方式。
在NOIP(全国青少年信息学奥林匹克竞赛)中,数据结构是一个常见的考题类型。
本文将介绍一些NOIP中关于数据结构的练习题,并给出相应的答案。
一、题目1给定一个整数数组nums和一个目标值target,在数组中找出和为目标值的两个整数,并返回它们的索引。
示例:输入:nums = [2, 7, 11, 15], target = 9输出:[0, 1]解释:nums[0] + nums[1] = 2 + 7 = 9,所以返回[0, 1]。
解答:这道题可以使用哈希表来解决。
我们可以遍历数组中的每个元素,将其与目标值的差值存储在哈希表中。
如果下一个元素在哈希表中存在,那么就找到了和为目标值的两个数。
代码实现:```pythondef twoSum(nums, target):hashmap = {}for i in range(len(nums)):complement = target - nums[i]if complement in hashmap:return [hashmap[complement], i]hashmap[nums[i]] = i```二、题目2给定一个字符串s,找到字符串中最长的回文子串。
假设字符串s 的最大长度为1000。
示例:输入:"babad"输出:"bab"解释:"bab"是最长的回文子串,因为它从左至右读和从右至左读是相同的。
解答:这是一个动态规划的问题。
我们可以定义一个二维数组dp,其中dp[i][j]表示字符串s从索引i到索引j是否是回文串。
初始时,所有长度为1的子串都是回文串。
然后我们遍历所有长度大于1的子串,如果子串的两端相等且除去两端的子串也是回文串,则该子串也是回文串。
noip普及组初赛模拟试卷
学校姓名年级1.选择一个正确答案代码(A/B/C/D),填入每题的括号内 (每题1.5分,多选无分, 共30分)题号 1 2 3 4 5 6 7 8 9 10选择题号 11 12 13 14 15 16 17 18 19 20选择二.问题求解(共2题,每题5分,共计10分)1. 最少需要交换次。
__________2. 递推公式。
二. 阅读程序,并写出程序的正确运行结果:(共4题,每题8分,共32分)(1)程序的运行结果是:(2)程序的运行结果是:(3)程序的运行结果是:(4)程序的运行结果是:四.根据题意, 将程序补充完整 (前4空,每空2.5分,后6空,每空3分,共28分)1.①②③④2.①②③④⑤⑥一、单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案.)。
(1)1983年,我国第一台亿次巨型电子计算机诞生了,它的名称是()A)东方红B)神威C)曙光D)银河(2)十进制数215用二进制数表示是()A)1100001 B)11011101 C)0011001 D)1 1010111(3)有一个数是123,它与十六进制数53相等,那么该数值是()A)八进制数B)十进制数C)五进制D)二进制数(4)下列4种不同数制表示的数中,数值最大的一个是()A)八进制数227 B)十进制数789 C)十六进制数1 FFD)二进制数1010001(5)某汉字的区位码是5448,它的机内码是()A)D6D0H B)E5E0H C)E5D0H D)D5E0H(6)在关系数据库中,存放在数据库中的数据的逻辑结构以()为主。
A.二叉树 B.多叉树 C.哈希表 D.二维表(7)LAN的含义是()。
A.因特网 B.局域网 C.广域网 D.城域网(8) Web2.0 是近年来互联网的热门概念之一,其核心思想是互动与分享。
下列网站中,()是典型的Web 2.0应用。
A.Sina B.Flicker C.Yahoo D.Google (9)常见的邮件传输服务器使用()协议接收邮件。
NOIP初赛模拟考试题和答案及解析
信息学奥林匹克联赛初赛模拟试题(普及组 C 语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一.选择一个正确答案代码(A/B/C/D/E),填入每题的括号内 (每题1.5分, 共30分)1.被誉为“人工智能之父”的是()。
A.冯·诺依曼。
B.巴贝奇。
C.文顿·瑟夫和卡恩。
D.阿兰·图灵。
E.弗雷德里克·特曼。
2.下列哪个不是CPU(中央处理单元)()。
A. Intel ItaniumB. DDR SDRAMC. AMD Athlon64D. AMD OpteronE. IBM Power 53.常见的邮件传输服务器使用()协议发送邮件。
A. HTTPB. SMTPC. TCPD. FTPE. POP34.下列无符号数中,最小的数是()。
A.(11011001)2B.(75)10C.(37)8D.(2A)165.下列哪个软件属于操作系统软件()。
A. Microsoft WordB. PhotoshopC. FoxmailD. WinRARE. Red Hat Linux6.下列哪个不是计算机的存储设备()。
A. 文件管理器B. 内存C. 高速缓存D. 硬盘E. U盘7.组成’教授’(jiao shou )’副教授’(fu jiao shou )与’讲师’( jiang shi)这三个词的汉字,在GB2312-80字符集中都是一级汉字.对这三个词排序的结果是()。
A教授,副教授,讲师 B.副教授,教授,讲师C讲师,副教授,教授 D.副教授,讲师,教授8.彩色显示器所显示的五彩斑斓的色彩,是由红色、蓝色和()色混合而成的。
A. 紫B. 白C. 黑D. 绿E. 橙9.以下哪个软件不是即时通信软件()。
A. 网易泡泡B. MSN MessengerC. Google TalkD. 3DS MaxE. QQ10.一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行相互转换的设备,这种设备是()。
NOIP竞赛模拟试题
NOIP2016普及组复赛模拟赛试卷普及组(请选手务必仔细阅读本页内容)二.提交源程序文件名三.编译命令(不包含任何优化开关)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。
3、统一评测时采用的机器配置为:CPU P4 3.0GHz,内存 2G,上述时限以此配置为准。
4、特别提醒:评测在Windows下进行,评测软件为cena8.0。
River Hopscotch(jump.pas/c/cpp)【问题描述】每年,奶牛们都举办一种特殊的跳房子游戏,在这个游戏中,大家小心翼翼地在河中的岩石上跳。
这个游戏在一条笔直的河中进行,以一块岩石表示开始,以另一块距离起点L单位长度的岩石表示结束。
在这两块岩石中间还有N 块岩石,每块的位置距离起点是 Di 个单位长度。
玩这个游戏的时候,每头牛从开始的那块岩石想办法要跳到表示结束的那块岩石上。
中间只能在从某块岩石跳跃到另一块岩石,反复的这样跳。
当然,不够敏捷的牛永远跳不到终点,最终只能落入河中。
农民 John 为他的牛感到自豪,每年都观看比赛。
随着时间的推移,他对于那些胆小的只能跳过很短距离的牛感到厌烦。
为了那些牛,其他农民会把岩石的间距弄得很小。
他计划移除一些岩石,从而增加奶牛在跳跃时需要的最短距离。
他不能移除开始和结束的两块岩石。
但是除此之外他可以移除 M 块岩石。
FJ 希望知道他能够增加多少最短跳跃距离。
求当他移除了M块岩石后,奶牛从开始跳到结束的岩石,每次跳跃的最短距离至多可以增加到多少。
【输入格式】第1行: 三个用空格分开的整数,分别是 L, N 和 M。
第2..N+1行: 每行一个整数,表示中间N块岩石的位置,没有两块岩石处于同一位置。
【输出格式】输出共一行一个整数,表示移除某M块岩石后,相邻岩石间距最小值的最大可能情况。
【输入样例】25 5 2214112117【输出样例】4【输入说明】中间有 5 块岩石,坐标 2, 11, 14, 17 和 21。
NOIP初赛模拟试题byOIStorec
NOIP初赛模拟试题by OI Store(提高组C++语言二小时完成)一、单项选择题(共10题,每题分,共计15分。
每题有且仅有一个正确答案。
)1.成立了运算机最要紧的结构原理的人是()。
2. A. 图灵 B. 比尔·盖茨 C. 冯·诺伊曼 D. 克拉拉·丹 E. 哥德尔3.设a、b、c是三个布尔型(boolean)的变量,那么表达式(a∨¬b)∧(b∨¬c)∧(c∨¬a)∧(a∧¬a)∧(b∧¬b)的值()。
4. A. 始终为true5. B. 始终为false6. C. 当且仅当c为true时为false7. D. 当且仅当a与b均为true时为true8. E. 依赖于a、b、c三者的值9.设a、b为两个浮点(float)型变量,下面的表达式中最有可能为真的是()。
10.A. a=b11.B. a*a+2*a*b+b*b=(a+b)*(a+b)12.C. (a+b)*(a-b)+b*b-a*a<13.D. a/b=1/(b/a)14.E. sqrt(a)*sqrt(b)=sqrt(a*b)15.下面的数据中,在编程顶用长整型(longint)表示最适当的是()。
16.A. 宇宙中的原子数量17.B. 一头大象的体重(用吨表示)18.C. 姚明的身高(用厘米表示)19.D.一个山村的准确人口数E. 从现在(2006年)到2008奥运会开幕的倒计时秒数1.一个三叉树(即每一个节点最多有三个小孩)中,有k个小孩的结点数量表示为S(k),那么以下关系必然成立的是()。
2. A. S(0)=2*S(3)+S(2)-13. B. S(0)>3*S(3)+2*S(2)-14. C. S(0)<3*S(3)+2*S(2)+15. D. S(0)>2*S(3)+S(2)6. E. S(0)<=3*S(3)+2*S(2)7.佳佳在网上购买了一个空间,建设了一个网站。
noip普及组编程模拟试题3(附答案)
1.从文件中读入若干个字符串(以“?”号结束),找出并输出未在此串中出现的所有字母和数字(按ASCII码顺序列出,区分大小写)。
输入文件aggre.in只有一行,一串字符(小于等于1000000个)。
输出文件aggre.out一行,不在字符串中出现的所有字母和数字,按ASCII码顺序(在一行中输出)。
样例:输入ABCD%$EF1234589JIKLMNabcddefOVWXYZPQghijklmnpqrstuvwxyzRST U?输出067Ghotype atype=set of char;var a:atype;ch:char;begin a:=['0'..'9','A'..'Z','a'..'z'];assign(input,'aggre.in');reset(input);assign(output,'aggre.out');rewrite(output);read(ch);while ch<>'?' do beginif (ch in a) then a:=a-[ch];read(ch);end;for ch:='0' to 'z' doif (ch in a) then write(ch);writeln;close(input);close(output);end.2.约瑟夫问题N个人排成一个圆圈,然后把这N个人按逆时针方向分别编号为1、2、……、N。
从编号为1的人开始按逆时针计数,当某人计数为M的倍数是,该人出圈;如此循环下去,直到圈中只有一个人留下。
输入 N,M输出:最后留下的一个人编号。
样例:输入 10 4输出 5分析:这道题似乎用不上什么算法,只需建立一个循环链表,然后按照题目中要求的模拟即可。
NOIP初赛模拟试题(Pascal语言、提高组)
NOIP初赛模拟试题 by OI Store(提高组 Pascal语言二小时完成)一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案。
)1.建立了计算机最主要的结构原理的人是()。
A. 图灵B. 比尔·盖茨C. 冯·诺伊曼D. 克拉拉·丹E. 哥德尔2.设a、b、c是三个布尔型(boolean)的变量,则表达式(a∨¬b)∧(b∨¬c)∧(c∨¬a)∧(a∧¬a)∧(b∧¬b)的值()。
A. 始终为trueB. 始终为falseC. 当且仅当c为true时为falseD. 当且仅当a与b均为true时为trueE.依赖于a、b、c三者的值3.设a、b为两个浮点(float)型变量,下面的表达式中最有可能为真的是()。
A. a=bB. a*a+2*a*b+b*b=(a+b)*(a+b)C. (a+b)*(a-b)+b*b-a*a<0.0001D. a/b=1/(b/a)E. sqrt(a)*sqrt(b)=sqrt(a*b)4.下面的数据中,在编程中用长整型(longint)表示最恰当的是()。
A. 宇宙中的原子数目B. 一头大象的体重(用吨表示)C. 姚明的身高(用厘米表示)D. 一个山村的准确人口数E.从现在(2006年)到2008奥运会开幕的倒计时秒数5.一个三叉树(即每个节点最多有三个孩子)中,有k个孩子的结点数目表示为S(k),则下列关系一定成立的是()。
A. S(0)=2*S(3)+S(2)-1B. S(0)>3*S(3)+2*S(2)-1C. S(0)<3*S(3)+2*S(2)+1D. S(0)<2*S(3)+S(2)E. S(0)<=3*S(3)+2*S(2)6.佳佳在网上购买了一个空间,建设了一个网站。
那么,他向网站上上传网页时最有可能采用的网络协议是()。
noip初赛试题及答案
noip初赛试题及答案一、选择题(每题5分,共50分)1. 在计算机科学中,以下哪个选项不是数据结构的分类?A. 线性结构B. 非线性结构C. 树形结构D. 随机结构答案:D2. 以下哪种算法的时间复杂度是O(n^2)?A. 归并排序B. 快速排序C. 插入排序D. 哈希表查找答案:C3. 在C++中,以下哪个关键字用于定义类?A. structB. unionC. enumD. typedef答案:A4. 在关系型数据库中,以下哪个操作用于删除表中的数据?A. SELECTB. INSERTC. UPDATED. DELETE答案:D5. 在计算机网络中,以下哪个协议是负责传输层的?A. HTTPB. FTPC. TCPD. IP答案:C6. 在操作系统中,以下哪个选项是进程调度算法?A. 先来先服务(FCFS)B. 最短作业优先(SJF)C. 轮转调度(RR)D. 所有以上答案:D7. 在二进制系统中,以下哪个值是8的二进制表示?A. 1000B. 1001C. 1010D. 1100答案:A8. 在计算机程序设计中,以下哪个选项是面向对象编程的特征?A. 封装B. 继承C. 多态D. 所有以上答案:D9. 在HTML中,以下哪个标签用于定义最重要的标题?A. <h1>B. <h2>C. <h3>D. <h4>答案:A10. 在计算机编程中,以下哪个选项是算法的属性?A. 有穷性B. 确定性C. 可行性D. 所有以上答案:D二、填空题(每题5分,共30分)1. 在计算机科学中,数据结构通常由____和____组成。
答案:数据元素,关系2. 在C语言中,以下代码段的输出结果是____。
```c#include <stdio.h>int main() {int a = 10;printf("%d", a++);return 0;}```答案:103. 在数据库设计中,为了减少数据冗余和避免数据不一致,通常采用____范式。
信友队 2023noip模拟 题解
【主题】信友队 2023noip模拟题解【内容】一、开篇近年来,信息学竞赛在我国逐渐兴起,成为学生展示自己编程能力和解题能力的舞台。
NOIP(全国青少年信息学奥林匹克联赛)作为我国信息学竞赛中的重要赛事之一,备受青少年程序员的关注和参与。
在备战NOIP的过程中,模拟赛成为一种重要的练习方式。
本文将围绕信友队 2023noip模拟的题目进行详细解析,帮助读者更好地理解这些题目的解法。
二、题目一1. 题目描述题目一要求找出一个长度为n的01串中,有多少个子串的异或和是偶数。
其中,n的范围是1 ≤ n ≤ 10^5。
2. 解题思路考虑动态规划的思想,假设f[i]表示以第i位结尾的子串的异或和的奇偶性,则f[i]的值由f[i-1]的值和当前位的值决定。
具体而言,如果f[i-1]是偶数,则以第i位结尾的子串的异或和是奇数;如果f[i-1]是奇数,则以第i位结尾的子串的异或和是偶数。
可以通过遍历整个01串,根据f[i-1]的奇偶性判断以第i位结尾的子串的异或和的奇偶性,并统计出最后的结果。
3. 代码实现```pythondef solve(s):n = len(s)t = 0even, odd = 0, 0for i in range(n):if int(s[i]) == 0:even += 1else:odd += 1if (even % 2 == 0) or (odd % 2 == 0):t += 1returnt```4. 结果分析通过以上代码实现的函数solve,可以很快得出题目所要求的结果。
该方法的时间复杂度为O(n),效率较高,能够满足题目给定的数据规模范围。
三、题目二1. 题目描述题目二给出一个n*m的矩阵,矩阵中的元素为非负整数。
求出从左上角到右下角的路径中,路径上的所有元素之和的最大值。
其中,n和m的范围分别为1 ≤ n, m ≤ 100。
2. 解题思路这是一个典型的动态规划问题。
考虑定义一个二维数组dp,其中dp[i][j]表示从起点到矩阵中第i行第j列元素的路径的最大和。
NOIP复赛模拟试卷(三)
NOIP复赛模拟试卷(三)第一题 Game【题目描述】小M在玩一个游戏。
游戏有N轮,每一轮,系统给出两个数X和Y,她的任务是将当前得到的所有X和Y两两配对,将每对X、Y求和,使得最大的和最小。
小M算晕了,于是找你帮忙~【输入格式】输入第一行包含一个整数N(1<=N<=100000)接下来N行,每行两个整数X、Y(1<=X,Y<=100)【输出格式】输出共N行,每行一个整数,对于当前得到的所有X和Y进行配对,输出最大和最小的值。
【样例】game.in32 83 11 4game.out10109【数据范围】对于50%的数据,N<=200;对于100%的数据,N<=100000。
第二题 frog【题目描述】一些瓷砖排成一排,其中站着一只青蛙。
瓷砖有两面,分别为白色和黑色。
青蛙所所在的位置是没有瓷砖的。
比如我们可以用BWFBBW表示瓷砖和青蛙的状态:黑-白-青蛙-黑-黑-白。
青蛙在其中跳来跳去,它可以选择向左或向右跳跃一格(在左边或右边有瓷砖的前提下),这样左边或右边的瓷砖就会滑向原来青蛙所在的位置。
比如上面例子中青蛙向右跳跃一格之后变成:BWBFBW。
另外,青蛙可以选择隔一个瓷砖跳,即跳到它右边的右边或左边的左边(在这些格子里有瓷砖的前提下),然后这些格子里的瓷砖会翻一面跳到青蛙原来所在的位置。
比如BWFBBW中的青蛙越过右边的瓷砖跳到右边的右边的瓷砖,之后变成:BWWBFW。
青蛙想要通过最少的跳跃步数使得任意两个黑瓷砖之间都没有任何白瓷砖。
【输入格式】输入包含一行一个串,表示原始瓷砖和青蛙的状态。
B代表黑瓷砖,W代表白瓷砖,F 代表青蛙。
保证数据中只有一只青蛙。
串不为空且长度不超过100。
【输出格式】输出一行一个整数,表示最少的跳跃步数;如果不能在10步之内完成,输出-1。
【样例】frog.inWWBBFBWfrog.outfrog.inWWFBWBWfrog.out1【数据范围】对于30%的数据,串的长度不超过10;对于100%的数据,串的长度不超过100。
noip备战模拟题(有解答)
吉祥数(ghillie.pas/c/cpp)【问题描述】为了迎接圣诞,信息学兴趣小组的同学在辅导老师的带领下,举办了一个盛大的晚会,晚会的第一项内容是做游戏:猜数。
老师给每位同学发一张卡片,每张卡片上都有一个编号(此编号为非负数,且小于255),每个编号互不相同。
老师制定了以下的游戏规则:第一轮,每位同学将自己卡片上编号的各位数字进行平方后再相加得到一组新数,编号在这组新数中出现的同学淘汰出局,第二轮,余下的同学再将编号的各位数字进行立方相加得到一组新数,编号在这组新数中出现的同学再淘汰出局,第三轮,余下的同学再将编号的各位数字进行4次方相加得到一组新数,编号在这组新数中出现的同学再淘汰出局,……,以此类推,经过n 轮后,仍留下来的同学,将获得圣诞特别礼物,卡片上的数即为2007年吉祥数。
(假定班级人数不超过200人)【输入文件】(ghillie.in)第1行为1个正整数n(n<8),表示有n轮游戏,第二行是卡片上互不相同的编号。
【输出文件】(ghillie.out)为剩下来的各个吉祥数,按从小到大顺序输出,每两个数之间有一个空格。
【输入样例】124 123 2 12 20 14 4 6 36 72【输出样例】2 6 12 24 72 123圣诞树(tree.pas/c/cpp)【问题描述】圣诞特别礼物挂在一棵圣诞树上,这棵树有n层,每层有一件礼物,每件礼物都有一个价值,有的礼物还有一些连结线,与下层的礼物相连,领取礼物的规则如下:任选一件礼物,它的下面如果有连结线,则可以继续取它连结的礼物,以此类推,直至取到没有连结线的礼物才结束,你如果是第一个去取,怎样取才能获得最大的价值呢?请你编一程序解决这一问题。
【输入文件】(tree.in)第一行只有一个数据n(n<=100),表示有n层礼物,以下有n行数据,分别表示第1-n层礼物的状态,每行至少由一个数据构成,且第一个数据表示该礼物的价值,后面的数据表示它与哪些层的礼物相连,如果每行只有一个数据则说明这层礼物没有与下层礼物相连,每个数的大小均不超过10000。
高二寒假noip模拟题第三题_交通问题
第三题交通问题提交文件:traffic.exe输入文件:traffic.in输出文件:traffic.out问题描述:在2500年,有一个这样的城市:它的街道都是东西走向或南北走向的,他们编号都是从1开始的连续的自然数。
而每一个街道相交处都有一个交通岗,并配有红绿灯。
这个城市里边的人在任何时候都非常遵守交通规则,只有在绿灯的时候,才通过交通岗(包括转弯),绝对不会闯红灯。
而且他们只会在交通岗改变他们的行车方向。
城市里的每条公路的两端都与别的城市相连。
有一天,恐怖分子突然控制了这个城市,破坏了这个城市的交通,使得每个交通岗的灯都变成了绿灯。
但是如果一旦有车通过了这个交通岗,这个岗则马上变成了红灯,别的车无法再在这个交通岗通过。
也就是,每个岗只允许一个车次通过。
这一天恰好在城市中有n辆车,你的任务就是分析这些车能不能逃离到别的城市。
下面是例子的图例,所有的六辆车按图示路线都安全逃离。
输入格式:数据存放在当前目录下的文本文件“traffic.in”中。
输入文件由多组数据构成。
每一组的第一行由三个整数组成:n、m、k,分别表示这个城市水平、竖直街道的条数,以及在城市里的车的数量。
接下来的k行,表示每个汽车的坐标(x,y),表示x行y列有个小车。
每个小车开始都在一个交通岗停靠,一旦开出这个交通岗,这个交通岗的交通灯也要变成红色。
当n、m、k为0 0 0 时,结束输入。
这组不用输出。
数据之间用空格分隔。
输出格式:答案输出到当前目录下的文本文件“traffic.out”中。
输出文件里的每组数据输出两行,第一行为“Scenario I”,其中I表示组数。
如果这些车都可以逃离,则在第二行输出:“Solution exists”;否则输出:“No solution available”输入样例:4 3 61 31 22 12 23 14 23 3 91 11 21 32 12 22 33 13 23 30 0 0输出样例:Scenario 1Solution existsScenario 2No solution available解法:构建二维坐标,进行广搜. 按我的思想是每一个出口都会接纳一辆车,在现实中每辆车都会寻找离出口最近的路,而题目是在满足其他的车的情况下进行. 就是比如一辆车就在出口前,他不走谁走? 所以进行广搜,谁最先找到最近的路,那么这条路就不能走.在一般情况下是可以完成的, 但在特殊情况下,有一些点会因其他点的路线阻碍,因而对其进行重搜索. ( 经过第一次遍历,所能走的路径已不多, 再来一次就可以了)程序:const dirx:array[1..4] of integer=(0,-1,0,1);diry:array[1..4] of integer=(-1,0,1,0);var n,m,k,t,kk,i,j,l,f,x,y,xx,yy,z:integer;a:array[-1..62,-1..62] of boolean;b:array[-1..62,-1..62] of integer;c:array[1..50000,1..3] of integer;d:array[0..4000] of boolean;e:array[-1..62,-1..62] of integer;turn:boolean;beginreadln(m,n,k);while n<>0 do begininc(t);fillchar(a,sizeof(a),0);fillchar(b,sizeof(b),0);for i:=-1 to m+2 do begin {规定范围}b[-1,i]:=-1; b[n+2,i]:=-1;end;for i:=-1 to n+2 do beginb[i,-1]:=-1; b[i,m+2]:=-1;end;b[0,0]:=-1; b[n+1,0]:=-1; b[0,m+1]:=-1; b[n+1,m+1]:=-1;l:=0;for i:=1 to n do begin {把出口坐标压进队列}inc(l); c[l,1]:=i; c[l,2]:=0; b[i,0]:=l;inc(l); c[l,1]:=i; c[l,2]:=m+1; b[i,m+1]:=l;end;for i:=1 to m do begininc(l); c[l,1]:=0; c[l,2]:=i; b[0,i]:=l;inc(l); c[l,1]:=n+1; c[l,2]:=i; b[n+1,i]:=l;end;for i:=1 to k do beginreadln(y,x); a[x,y]:=true;end;for i:=1 to l do d[i]:=true;f:=1; kk:=k; turn:=true;while f<=l do beginx:=c[f,1]; y:=c[f,2];if d[abs(b[x,y])] then {没找到路径}for i:=1 to 4 do if d[abs(b[x,y])] then beginxx:=x+dirx[i]; yy:=y+diry[i];if (b[xx,yy]=0) or (not d[abs(b[xx,yy])] and (b[xx,yy]>0)) then beginb[xx,yy]:=b[x,y]; e[xx,yy]:=i;if a[xx,yy] then begin {找到车辆坐标}dec(kk); a[xx,yy]:=false; d[b[x,y]]:=false;while true do begin {标记路径}b[xx,yy]:=-b[xx,yy];if e[xx,yy]=0 then break;z:=e[xx,yy]; xx:=xx-dirx[z]; yy:=yy-diry[z];end;endelse begin {若不是目标点,就加入下一层搜索}inc(l); c[l,1]:=xx; c[l,2]:=yy;end;end;end;inc(f);if (f>l) and turn then begin {第一次结束,进行下一次搜索}turn:=false;for i:=1 to m dofor j:=1 to n do if d[abs(b[i,j])] then begin {寻找可重搜的点}inc(l); c[l,1]:=i; c[l,2]:=j;end;end;end;writeln('Scenario ',t);if kk=0 then writeln('Solution exists')else writeln('No solution available');readln(m,n,k);end;end.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NOIP模拟试题三
普及组复赛
题目名称手机数字积木家族书本整理
程序名称mobile.pas/c/cpp brick.pas/c/cpp famdy.pas/c/cpp book.pas/c/cpp 输入文件mobile.in brick.in family.in book.in
输出文件mobile.out brick.out family.out book.out
时间限制1秒1秒1秒1秒
一、手机(mobile.pas/c/cpp)
【问题描述】
一般的手机的键盘是这样的:
12abc3def
4ghi5jkl6mno
7pqrs8tuv9wxyz
*0#
要按出英文字母就必须要按数字键多下。
例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。
0键按一下会出一个空格。
你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。
【问题输入】
一行一个句子,只包含英文小写字母和空格,且不超过200个字符。
【问题输出】
一行一个整数,表示按键盘的总次数。
【样例输入】
i have a dream
【样例输出】
23
【数据范围】
如题目所示
二、数字积木(brick.pas/c/cpp)
【问题描述】
小明有一款新式积木,每个积木上都有一个数,一天小明突发奇想,要是把所有的积木排成一排,所形成的数目最大是多少呢?
你的任务就是读入n个数字积木,求出所能形成的最大数。
【问题输入】
第一行是一个整数n(n≤1000),接下来n行每行是一个正整数。
【问题输出】
所能形成的最大整数
【样例输入】
3
13
131
343
【样例输出】
34313131
【数据范围】
30%的数据,n≤l0,每个数<103。
50%的数据,n≤l00。
100%的数据,n≤1000,每个数<10200。
三、家族(family.pas/c/cpp)
【问题描述】
在一个与世隔绝的岛屿上,有一个有趣的现象:同一个家族的人家总是相邻的(这里的相邻是指东南西北四个方向),不同的家族之间总会有河流或是山丘隔绝,但同一个家族的人不一定有相同姓氏。
现在给你岛上的地图,求出岛上有多少个不同的家族。
岛上的地图有n行,每行有若干列,每个格子中要么是“”,表示大海,要么是“*”,表示河流或山丘,要么是小写字母,表示一户人家的姓氏。
【问题输入】
第一行是个数字N,表示下面信息的行数。
接下来是N行字符,每行由小写字母和*号组成,有些行的最前面也可能包含若干连续的空格,表示这些区域是大海,每一行最多不超过200个字符。
【问题输出】
一个数字,表示家族数。
【样例输入】
4
*zlw**pxh
l*zlwk*hx*
w*tyy**yyy
zzl
【样例输出】
3
【数据范围】
10%的数据,n≤1。
30%的数据,n≤10。
100%的数据,n≤100每一行最多不超过200个字符。
四、书本整理(book.pas/c/cpp)
【问题描述】
小明的书架上放了许多书,为了使书架变得整洁,小明决定整理书架,他将所有书按高度大小排列,这样排了之后虽然整齐了许多,但小明发现,书本的宽度不同,导致书架看上去还是有些凌乱。
小明把这个凌乱值定义为相邻两本书的宽度差的绝对值的和。
例如有4本书:
1×2
5×3
2×4
3×1
那么小明将其排列整齐后的顺序是:
l×2
2×4
3×1
5×3
凌乱值就是2+3+2=7。
于是小明决定拿掉其中的k本书,使凌乱值最小,你能帮他求出这个最小值吗?
已知每本书的高度都不一样。
【问题输入】
第一行两个数字n和k,代表书总共有n本,要求从中去掉k本。
(1≤n≤100,1≤k<n)下面的n行,每行两个数字表示一本书的高度和宽度,它们均小于200。
【问题输出】
一个整数,表示书架的最小凌乱值。
【样例输入】
41
12
24
31
53
【样例输出】
3
【数据范围】
30%的数据,n≤20。
100%的数据,n≤l00,k<n。