NOIP2013普及组模拟试题3
NOI初赛普及组C题目及答案

第十九届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间: 2013 年 10 月 13 日 14:30~16:30选手注意:试题纸共有9 页,答题纸共有 2 页,满分 100 分。
请在答题纸上作答,写在试题纸上的一律无效。
不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共20 题,每题 1.5 分,共计 30 分;每题有且仅有一个正确选项)1. 一个 32 位整型变量占用()个字节。
A. 4B. 8C. 32D. 1282. 二进制数 11.01 在十进制下是()。
A. 3.25B. 4.125C. 6.25D. 11.1253. 下面的故事与()算法有着异曲同工之妙。
从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’A. 枚举B. 递归C. 贪心D. 分治4. 逻辑表达式()的值与变量A 的真假无关。
A. (A ∨ B) ∧﹃AB. (A ∨ B) ∧﹃BC. (A ∧ B) ∨ (﹃ A ∧ B)D. (A ∨ B) ∧﹃A ∧ B5. 将( 2, 6, 10, 17)分别存储到某个地址区间为0~10 的哈希表中,如果哈希函数h(x) = (),将不会产生冲突,其中a mod b 表示 a 除以 b 的余数。
A. x mod 11B. x2 mod 11C. 2x mod 11D. |√2| mod 11 ,其中√X表示√X下取整6. 在十六进制表示法中,字母A 相当于十进制中的()。
A. 9B. 10C. 15D. 167. 下图中所使用的数据结构是()。
A. 哈希表B. 栈C. 队列D. 二叉树8. 在 Windows 资源管理器中,用鼠标右键单击一个文件时,会出现一个名为“复制”的操作选项,它的意思是()。
A. 用剪切板中的文件替换该文件B. 在该文件所在文件夹中,将该文件克隆一份C. 将该文件复制到剪切板,并保留原文件D. 将该文件复制到剪切板,并删除原文件9. 已知一棵二叉树有10 个节点,则其中至多有()个节点有2 个子节点。
noip2013 模拟试题

排名(paiming.pas/c/cpp)[问题描述]宁波市的小学生们在镇海中学完成程序设计比赛后,老师们批出了所有学生的成绩,成绩按分数从高到低排名,成绩相同按年级从低到高排(注:纯属虚构,勿对号入座)。
现在主办单位想知道每一个排名的学生前,有几位学生的年级低于他(她)。
[输入]输入文件paiming.in,有若干行:第1行只有一个正整数n(1<=n<=200),表示参赛的学生人数。
第2行至第n+1行共n行,每行有两个正整数s(0<=s<=400),g(1<=g<=6)。
其中第i+1行的第一个数s表示第i个学生的成绩,第i+1行第二个数g表示第i个学生的的年级。
[输出]输出文件paiming.out有n行,每行只有一个正整数,其中第i行的数k表示排第i名的学生前面有k个学生的排名比他(她)高,且年级比他(她)低。
[样例输入]5300 5200 6350 4400 6250 5[样例输出]113[数据限制]50%的数据,每个学生的成绩互不相同种树(trees.pas)【问题描述】一条街的一边有几座房子。
因为环保原因居民想要在路边种些树。
路边的地区被分割成块,并被编号成1..N。
每个部分为一个单位尺寸大小并最多可种一棵树。
每个居民想在门前种些树并指定了三个号码B,E,T。
这三个数表示该居民想在B和E之间最少种T棵树。
当然,B≤E,居民必须记住在指定区不能种多于区域地块数的树,所以T≤E-B+l。
居民们想种树的各自区域可以交叉。
你的任务是求出能满足所有要求的最少的树的数量。
写一个程序完成以下工作:* 从trees.in读入数据* 计算最少要种树的数量和位置* 把结果写到trees.out【输入】第一行包含数据N,区域的个数(0<N≤30000);第二行包含H,房子的数目(0<H≤5000);下面的H行描述居民们的需要:B E T,0<B≤E≤30000,T≤E-B+1。
noip普及组初赛模拟试卷(附标准答案)

noip普及组初赛模拟试卷(附答案)————————————————————————————————作者:————————————————————————————————日期:选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题1.5分,多选无分, 共30 分)题号 1 2 3 4 5 6 7 8 9 10 选择 C D C D D B B A B C题号11 12 13 14 15 16 17 18 19 20 选择 C D D A B C C D C B 二.问题求解(共2题,每题5分,共计10分)1. 当m=4,n=4时选法数=352. 共有多少种选法1360二. 阅读程序,并写出程序的正确运行结果:(共4题,每题8分,共32分)1. 程序的运行结果是: 1262. 程序的运行结果是: 115 1123.程序的运行结果是:114. 程序的运行结果是:DCBA CDBA CBDA CBAD BDCA BCDA BCAD BADC BACD ADCB ACDB ACBD ABDC ABCDNum=14四.根据题意, 将程序补充完整(每空2.8分,共28分)1.①readln(d,i);②d-1③x*2+1④a[x]:=(4)true;2.①j<=trunc(sqrt(k))②L-1③a[v]<=m④inc(v)⑤s=2*L-1一、选择题:共20题,每题1.5分,共计30分1. 关于计算机语言,正确的说法是(C)。
A.BASIC语言是一种高级语言,每台计算机都必须配备B.汇编语言是一种比BASIC语言更高级的计算机语言C.机器语言是计算机可以直接识别的语言,但编程比较困难D.PASCAL语言是BASIC语言的更高版本2. 计算机接入网络后,它的功能会大大拓展,主要表现在( D )。
A.共享资源与分担负荷B.数据通讯C.可以使用他人的资源D.以上三项功能都有【分析与解答】计算机网络能够实现的功能是:数据通讯,资源共享,实现信息的分布式处理和提高计算机系统的可靠性与实用性。
NOIP普及组历届试题分析

对于100%的数据,3 ≤ n ≤ 100 测验题给出的正整数大小不超过10,000。
试题分析
题意大意:给你n个数,在这n个数中,找 到满足A+B=C的C的个数,注意不是这个 等式的个数。
样例中,1,2,3,4有1+2=3,1+3=4两个。
由于本题数据规模n<=100,我们可以直接
枚举C, A, B,三层循环解决问题。
扫雷游戏 (noip2015普及组第二题)
输入样例 1 33 *?? ??? ?*? 输入样例 2 23 ?*? *??
输出样例 1 mine.out *10 221 1*1 输出样例 2 mine.out 2*1 *21
对于 100%的数据,1≤n≤100,1≤m≤100
问题分析:
本题也是简单的枚举类试题。 我们从雷区的第一行第一列(1,1)开始,判断它周围 有多少个地雷。 由于本题读入的是字符,读入时需要注意: readln(n,m); for i=1 to n do begin for j=1 to m do read(a[i][j]); readln; end;
比例简化 (noip2014普及组第二题)
在社交媒体上,经常会看到针对某一个观点同意与 否的民意调查以及结果。例如,对某 一观点表示 支持的有 1498 人,反对的有 902 人,那么赞同与 反对的比例可以简单的记为1498:902。 不过,如果把调查结果就以这种方式呈现出来,大 多数人肯定不会满意。因为这个比例的数值太大, 难以一眼看出它们的关系。对于上面这个例子,如 果把比例记为 5:3,虽然与 真实结果有一定的误差, 但依然能够较为准确地反映调查结果,同时也显得 比较直观。 现给出支持人数 A,反对人数 B,以及一个上限 L, 请你将 A 比 B 化简为 A’比 B’,要求在 A’和 B’均 不大于 L 且 A’和 B’互质(两个整数的最大公约数 是 1)的前提下,A’/B’ ≥ A/B 且 A’/B’ - A/B 的值 尽可能小。
NOIP2013年普及组复赛真题解析

NOIP2013年普及组复赛真题解析T1 计数问题解析:对于100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
枚举每个数的每一位就行。
程序:include<cstdio>#include<iostream>using namespace std;int main(){int n,x;cin>>n>>x;int i,c=0;for(i=1;i<=n;i++){int a=i;while(a!=0){if(a%10==x)c++;a/=10;}}cout<<c;return 0;}===================================================T2 表达式求值解析:对于30%的数据,0≤表达式中加法运算符和乘法运算符的总数≤100;对于80%的数据,0≤表达式中加法运算符和乘法运算符的总数≤1000;对于100%的数据,0≤表达式中加法运算符和乘法运算符的总数≤100000。
程序:#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;char last;char c;int x=0;int a=0,b=1;int sum=0;int main(){int i,j;bool flag=1;do{if(cin>>c);else{flag=0;c='+';//相当于在整个串最后补个+号,以完成全部运算}if(c>='0' && c<='9')x=x*10+c-'0';//读取数else{a=x;//如果读到的不是数字,把之前读到的数存起来x=0;//初始化}if(c=='*'){//处理乘号,方法是先记下这个数,下次读到乘号再计算last=1;b=(a*b)%10000;//有连续乘号时,累乘}if(c=='+'){if(last){//上一个是乘号的情况a=(a*b)%10000;sum=(sum+a)%10000;b=1;last=0;}else sum+=a;//上一个是加号的情况}}while(flag==1);printf("%d",sum%10000);return 0;}===================================================T3解析:Case 1:小朋友的特征值分别为1、3、6、10、15,分数分别为1、2、5、11、21,最大值21对997 的模是21。
NOIP2013普及组模拟试题2

全国信息学奥林匹克联赛(NOIP2013)复赛模拟普及组一.题目概览中文题目名称mirrors刷墙算周长饥饿的奶牛英文题目名称mirrors paint truth hunger可执行文件名mirrors paint truth hunger 输入文件名mirrors.in paint.in truth .in hunger .in 输出文件名mirrors..out paint.out truth.out hunger.out 每个测试点时限1秒1秒1秒1秒测试点数目10 10 10 10每个测试点分值10 10 10 10 比较方式全文比较全文比较全文比较全文比较题目类型传统传统传统传统二.提交源程序文件名对于pascal语言mirrors.pas paint.pas truth.pas hunger.pas 对于C语言mirrors.c paint.c truth.c hunger.c 对于C++语言mirrors.cpp paint.cpp truth.cpp hunger.cpp三.编译命令(不包含任何优化开关)对于pascal语言fpc queue.pas fpc windows.pas fpc s4.pas fpc book.pas对于C语言gcc –o queuequeue.c gcc –o windowswindows.cgcc –o s4s4.cgcc –o bookbook.c对于C++语言g++ –o queuequeue.cpp g++ –o windowswindows.cppg++ –o s4s4.cppg++ –obookbook.cpp四.运行内存限制运行内存上限50M 50M 50M 50M注意事项:1、文件名(程序名和输入输出文件名)必须使用小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
mirrors(mirrors.pas/c/cpp)【问题描述】Farmer John的奶牛在农场周围制造了很多麻烦,所以他想要更加密切地关注它们。
NOIP普及组初赛历年试题及答案求解题篇

NOIP普及组初赛历年试题及答案求解题篇问题求解:每次共2题,每空5分,共计10分。
每题全部答对得 5 分,没有部分分。
注:答案在文末在NOIP初赛问题求解中,经常会遇到排列组合问题。
这一类问题不仅内容抽象,解法灵活,而且解题过程极易出现“重复”和“遗漏”的错误,这些错误甚至不容易检查出来,所以解题时要注意不断积累经验,总结解题规律。
解答排列组合问题,首先必须认真审题,明确是属于排列问题还是组合问题,或者属于排列与组合的混合问题,其次要抓住问题的本质特征,灵活运用基本原理和公式进行分析解答。
同时还要注意讲究一些策略和技巧,比如采用分类、分步、捆绑等方法,也可以借助表格、方程等工具,使一些看似复杂的问题迎刃而解。
NOIP2011-1. 每份考卷都有一个8位二进制序列号。
当且仅当一个序列号含有偶数个1时,它才是有效的。
例如,0000000、01010011都是有效的序列号,而11111110不是。
那么,有效的序列号共有______个。
NOIP2011-2. 定义字符串的基本操作为: 删除一个字符、插入一个字符和将一个字符修改成另外一个字符这三种操作。
将字符串A变成字符串B的最少操作步数,称为字符串A到字符串B的编辑距离。
字符串“ ABCDEFG ”到字符串“BADECG ”的编辑距离为_______。
NOIP2012-1. 如果平面上任取n 个整点(横纵坐标都是整数) ,其中一定存在两个点,它们连线的中点也是整点,那么n至少是_____。
NOIP2012-2. 在NOI期间,主办单位为了欢迎来自全国各地的选手,举行了盛大的晚宴。
在第十八桌,有5名大陆选手和5名港澳选手共同进膳。
为了增进交流,他们决定相隔就坐,即每个大陆选手左右相邻的都是港澳选手、每个港澳选手左右相邻的都是大陆选手。
那么,这一桌共有_____种不同的就坐方案。
注意:如果在两个方案中,每个选手左边相邻的选手均相同,则视为同一个方案。
NOIP2013-1. 7 个同学围坐一圈,要选2 个不相邻的作为代表,有_____种不同的选法。
NOIP2013普及组模拟试题1

全国信息学奥林匹克联赛(NOIP2013)复赛模拟普及组一.题目概览中文题目名称lignment 消息传递Cow Crossings算周长英文题目名称lignment relay crossings perimeter可执行文件名lignment relay crossings perimeter 输入文件名lignment.in relay.in crossings.in perimeter.in 输出文件名lignmentout relay.out crossings.out perimeter.out 每个测试点时限1秒1秒1秒1秒测试点数目10 10 10 10每个测试点分值10 10 10 10 比较方式全文比较全文比较全文比较全文比较题目类型传统传统传统传统二.提交源程序文件名对于pascal语言alignment pas relay.pas crossings.pas perimeter.pas 对于C语言alignment.c relay.c crossings.c perimeter.c 对于C++语言alignment.cpp relay.cpp crossings.cpp perimeter.cpp三.编译命令(不包含任何优化开关)对于pascal语言fpc queue.pas fpc windows.pas fpc s4.pas fpc book.pas对于C语言gcc –o queuequeue.c gcc –o windowswindows.cgcc –o s4s4.cgcc –o bookbook.c对于C++语言g++ –o queuequeue.cpp g++ –o windowswindows.cppg++ –o s4s4.cppg++ –obookbook.cpp四.运行内存限制运行内存上限50M 50M 50M 50M注意事项:1、文件名(程序名和输入输出文件名)必须使用小写。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NOIP模拟题bronze
刘启鹏
竞赛时间:2010年11月13日 8:30-11:30
注意:最终测试时,所有编译命令均不打开任何优化开关。
Linear T riple
【问题描述】
一个线性三元组是指一个满足如下关系有序三元组(s1,s2,s3):s3-s2=s2-s1.如(1,2,3),(2,4,6),(14,21,28)都是满足条件的线性三元组.
对于给定的一个S个元素的集合(元素值在1..100间),请输出可以组成的线性三元组的数目。
【输入格式】
第一行:一个整数,S (3 <= S <= 30)。
第二行:S个用空格隔开的整数.
【输出格式】
仅一行,包含一个整数,可以组成的线性三元组的数量,保证在长整形范围内。
【样例输入1】
7
1 2 3 4 6 8 9
【样例输出1】
5
【数据说明】
这些三元组是:
1 2 3
2 3 4
2 4 6
3 6 9
4 6 8。
NOIP模拟题bronze 刘启鹏P vs NP
P vs NP
【问题描述】
P/NP问题是在理论信息学中计算复杂度理论领域里至今没有解决的问题,它被“克雷数学研究所”(Clay Mathematics Institute, 简称CMI)在千禧年大奖难题中收录。
P/NP问题中包含了复杂度类P与NP的关系。
1971年Stephen A. Cook 和Leonid Levin 相对独立的提出了下面的问题,即是否两个复杂度类P和NP是恒等的(P=NP?)。
这个问题似乎难了点,放在NOIP第一题不太人道。
放心,你需要解决的只是一个简化版的问题:P=N*P?
【输入格式】
输入的第一行包含两个数,分别为N和P。
【输出格式】
如果P=N*P,输出True。
否则输出False。
【样例输入1】
1 123789325797235098234798235709235092357092357092347092370924234 【样例输出1】
True
【样例输入2】
-3.14159265358979323846264338327950288419716939937510 0
【样例输出2】
True
【数据说明】
保证读入不会超过0.1s。
保证数据是十进制。
不可能出现+12,13.,--108,.12345等表示方式。
NOIP模拟题bronze 刘启鹏Brick Break Game
Brick Break Game
【问题描述】
很久很久很久很久很久以前,有一个有趣的游戏。
这个游戏是这样的,地上有一些砖块,保证每一块的长度都是{1,2,3,4}的一个整数。
每次你有两种操作,拿走n个长度为n的砖块,或者把一个长度大于1的砖块分为两个长度大于等于0的砖块。
如果某个玩家无法操作,就算这位玩家输。
现在给出你一些局面,判断这个游戏是先手必胜还是后手必胜。
【输入格式】
输入的第一行包含一个整数T,表示数据组数。
接下来有T组,每组四个整数a b c d,表示长度为1 2 3 4的砖块分别有多少个。
【输出格式】
输出T行,每行一个一个整数,1表示先手必胜,0表示后手必胜。
【样例输入】
3
4 2 1 0
0 0 1 0
7 0 1 0
【样例输出】
1
1
【数据说明】
30%数据满足:a+2b+3c+4d≤10
70%数据满足:max{a, b, c, d}≤14
100%数据满足:T≤10, max{a, b, c, d}≤1010000
NOIP模拟题bronze 刘启鹏数池塘
数池塘
【问题描述】
农夫约翰的农场可以表示成N*M(1<=N<=100,1<=M<=100)个方格组成的矩形。
由于近日的降雨,在约翰农场上的不同地方形成了池塘。
每一个方格或者有积水('W')或者没有积水('.')。
农夫约翰打算数出他的农场上共形成了多少池塘。
一个池塘是一系列相连的有积水的方格,每一个方格周围的八个方格都被认为是与这个方格相连的。
现给出约翰农场的图样,要求输出农场上的池塘数。
【输入格式】
第1行:由空格隔开的两个整数:N和M
第2..N+1行:每行M个字符代表约翰农场的一排方格的状态。
每个字符或者是'W'或者是'.',字符之间没有空格。
【输出格式】
第1行:约翰农场上的池塘数。
【样例输入1】
10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.
【样例输出1】
3。