历年noip普及组(c++)完善程序题总结归纳
- 格式:docx
- 大小:24.59 KB
- 文档页数:20
第十九届全国青少年信息学奥林匹克联赛初赛普及组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 个子节点。
9.)。
第十届全国青少年信息学奥林匹克联赛初赛试题A. 文件管理器B. 内存C. 高速缓存D. 硬盘E. U 盘 下列说法中错误的是( A. CPU 的基本功能就是执行指令。
B. CPU 访问内存的速度快于访问高速缓存的速度。
C. CPU 的主频是指CPU 在1秒内完成的指令周期数。
D. 在一台计算机内部,一个内存地址编码对应唯一的一个内存单元。
E. 数据总线的宽度决定了一次传递数据量的大小,是影响计算机性能的因素之彩色显示器所显示的五彩斑斓的色彩,是由红色、蓝色和(A. 紫B. 白C. 黑D. 绿E. 橙 用静电吸附墨粉后转移到纸张上,是哪种输出设备的工作方式( A. 针式打印机 B. 喷墨打印机 C. 激光打印机 D. 笔式绘图仪 E. 喷墨绘图 仪普及组 C 语言小时完成 )•• 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效••1. 2. 3. 4. 5. 6..选择一个正确答案代码( A/B/C/D/E ),填入每题的括号内 ( 每题1.5分, 共30分) 美籍匈牙利数学家冯•诺依曼对计算机科学发展所做出的贡献是( A. 提出理想计算机的数学模型,成为计算机科学的理论基础。
是世界上第一个编写计算机程序的人。
提出存储程序工作原理, 并设计出第一台具有存储程序功能的计算机 采用集成电路作为计算机的主要功能部件。
指出计算机性能将以每两年翻一番的速度向前发展。
)。
B. C. D. E.下列哪个不是CPU (中央处理单元)(A. Intel ItaniumB. DDR SDRAMC. AMD Athlon64D. AMD OpteronE. IBM Power 5 下列网络上常用的名字缩写对应的中文解释错误的是( WWW (World Wide Web ) :万维网。
URL (Uniform Resource Locator ):统一资源定位器。
HTTP(Hypertext Transfer Protocol ):超文本传输协议。
完善程序题总结归纳By:七(6) yx一、【题目】(哥德巴赫猜想)哥德巴赫猜想是指,任一大于2的偶数都可写成两个质数之和。
迄今为止,这仍然是一个著名的世界难题,被誉为数学王冠上的明珠。
试编写程序,验证任一大于2且不超过n的偶数都能写成两个质数之和。
#include<iostream>using namespace std;int main(){const int SIZE=1000;int n,r,p[SIZE],i,j,k,ans;bool tmp;cin>>n;r=1;p[1]=2;for(i=3;i<=n;i++){①;for(j=1;j<=r;j++)if(i% ②==0){tmp=false;break;}if(tmp){r++;③;}}ans=0;for(i=2;i<=n/2;i++){tmp=false;for(j=1;j<=r;j++)for(k=j;k<=r;k++)if(i+i== ④ ){tmp=true;break;}if(tmp)ans++;}cout<<ans<<endl;return 0;}若输入n为2010,则输出⑤时表示验证成功,即大于2且不超过2010的偶数都满足哥德巴赫猜想。
【算法】先for一遍,找出质数,然后对每一个偶数进行一一匹配(2除外),效率O(n^3)【代码】1、tmp=1;2、p[j];3、p[r]=j;4、p[j]+p[k]5、1004【年份】2010年二、【题目】(过河问题) 在一个月黑风高的夜晚,有一群人在河的右岸,想通过唯一的一根独木桥走到河的左岸.在伸手不见五指的黑夜里,过桥时必须借照灯光来照明,不幸的是,他们只有一盏灯.另外,独木桥上最多能承受两个人同时经过,否则将会坍塌.每个人单独过独木桥都需要一定的时间,不同的人要的时间可能不同.两个人一起过独木桥时,由于只有一盏灯,所以需要的时间是较慢的那个人单独过桥所花费的时间.现在输入N(2<=N<1000)和这N个人单独过桥需要的时间,请计算总共最少需要多少时间,他们才能全部到达河左岸.例如,有3个人甲、乙、丙,他们单独过桥的时间分别为1、2、4,则总共最少需要的时间为7.具体方法是:甲、乙一起过桥到河的左岸,甲单独回到河的右岸将灯带回,然后甲、丙在一起过桥到河的左岸,总时间为2+1+4=7.#include<iostream>#include<cstring>using namespace std;const int size=100;const int infinity = 10000;const bool left=1;const bool right =0;const bool left_to_right=1;const bool right_to_left=0;int n,hour[size];bool pos[size];int max(int a,int b){return a>b?a:b;}int go(bool stage){int i,j,num,tmp,ans;if(stage==right_to_left){num=0;ans=0;for(i=1;i<=n;i++)if(pos[i]==right){num++;if( hour[i]>ans)ans=hour[i];}if( ① )return ans;ans=infinity;for(i=1;i<=n-1;i++)if(pos[i]==right)for(j=i+1;j<=n;j++)if(pos[j]==right){pos[i]=left;pos[j]=left;tmp=max(hour[i],hour[j])+ ②; if(tmp<ans)ans=tmp;pos[i]=right;pos[j]=right;}return ans;}if(stage==left_to_right){ans=infinity;for(i=1;i<=n;i++)if( ③ ){pos[i]=right;tmp= ④ ;if(tmp<ans)ans=tmp;⑤;}return ans;}return 0;}int main(){int i;cin>>n;for(i=1;i<=n;i++){cin>>hour[i];pos[i]=right;}cout<<go[right_to_left)<<endl;return 0;}【算法】利用深搜,左右交替寻找最优解(maybe是动态规划)【代码】1、num<=2;2、go[1];3、pos[j]==1;4、hour[i]+go[0];5、pos[i]=1;【年份】2010年三、【题目】(子矩阵)给输入一个n1*m1的矩阵a,和n2*m2的矩阵b,问a中是否存在子矩阵和b相等。
第十九届全国青少年信息学奥林匹克联赛初赛普及组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 个子节点。
第十二届全国青少年信息学奥林匹克联赛初赛试题 2006(普及组C++ 语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案.)1. 在下面各世界顶级的奖项中,为计算机科学与技术领域做出杰出贡献的科学家设立的奖项是()。
A. 沃尔夫奖B. 诺贝尔奖C. 菲尔兹奖D. 图灵奖2. 在下列各软件中,不属于NOIP竞赛(复赛)推荐使用的语言环境有()。
A. gcc/g++B. Turbo PascalC. RHIDED. free pascal3. 以下断电之后仍能保存数据的有()。
A. 寄存器B. ROMC. RAMD. 高速缓存4.Linux是一种( )。
A. 绘图软件B. 程序设计语言C. 操作系统D. 网络浏览器5. CPU是( )的简称。
A. 硬盘B. 中央处理器C. 高级程序语言D. 核心寄存器6. 在计算机中,防火墙的作用是()。
A. 防止火灾蔓延B.防止网络攻击C. 防止计算机死机D. 防止使用者误删除数据7. 在下列关于计算机语言的说法中,不正确的是()。
A. Pascal和C都是编译执行的高级语言B. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上C. C++是历史上的第一个支持面向对象的计算机语言D. 与汇编语言相比,高级语言程序更容易阅读8. 在下列关于计算机算法的说法中,不正确的是()。
A. 一个正确的算法至少要有一个输入B. 算法的改进,在很大程度上推动了计算机科学与技术的进步C. 判断一个算法的好坏的主要标准是算法的时间复杂性与空间复杂性D. 目前仍然存在许多涉及到国计民生的重大课题,还没有找到能够在计算机上实施的有效算法9. 在下列各种排序算法中,不是以“比较”作为主要操作的算法是()。
A. 选择排序B. 冒泡排序C. 插入排序D. 基数排序10.在编程时(使用任一种高级语言,不一定是C++),如果需要从磁盘文件中输入一个很大的二维数组(例如1000*1000的double型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于列的)相比,在输入效率上()。
NOIP2016第二十二届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2016年10月22日14:30~16:30一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1.以下不是微软公司出品的软件是( )。
A.Powerpoint B.Word C.Excel D. Acrobat Reader2.如果256种颜色用二进制编码来表示,至少需要( )位。
A.6 B.7 C.8 D.93.以下不属于无线通信技术的是( )。
A.蓝牙 B.WiFi C.GPRS D.以太网4.以下不是CPU生产厂商的是( )。
A.IntelB.AMDC.MicrosoftD.IBM5.以下不是存储设备的是( )。
A.光盘 B.磁盘 C.固态硬盘 D.鼠标6.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S 和字母键D的顺序循环按键,即CapsLock、A、S、D、CapsLock、A、S、D、……,屏幕上输出的第81个字符是字母( )。
A.A B.S C.D D.a7.二进制数00101100和00010101的和是( )。
A.00101000B.01000001C.01000100D.001110008.与二进制小数0.1相等的八进制数是( )。
A.0.8 B.0.4 C.0.2 D.0.19.以下是32位机器和64位机器的区别的是( )。
A.显示器不同 B.硬盘大小不同C.寻址空间不同 D.输入法不同10.以下关于字符串的判定语句中正确的是( )A.字符串是一种特殊的线性表 B.串的长度必须大于零C.字符串不可以用数组来表示 D.空格字符组成的串就是空串11.一棵二叉树如右图所示,若采用顺序存储结构,即用一维数组元素存储该二叉树中的结点(根结点的下标为1,若某结点的下标为i,则其左孩子位于下标2i处、右孩子位于下标(2i+1)处),则图中所有结点的最大下标为( ) 。
第十四届全国青青年信息学奥林匹克联赛初赛试题2020(普及组C++语言二小时完成)●●全数试题答案均要求写在答卷纸上,写在试卷纸上一概无效●●一、单项选择题(共20题,每题分,共计30分。
每题有且仅有一个正确答案.)。
1.微型运算机中,操纵器的大体功能是()。
A. 操纵机械各个部件和谐工作B. 实现算术运算和逻辑运算C. 获取外部信息D. 存放程序和数据2. 设A=true,B=false,C=true,D=false,以下逻辑运算表达式值为真的是()。
A. (A∧B)∨(C∧D∨⌝A)B. ((⌝A∧B)∨C)∧⌝DC. (B∨C∨D)∧D∧AD. A∧(D∨⌝C)∧B3. 在以下关于图灵奖的说法中,不正确的选项是()。
A. 图灵奖是美国运算机协会于1966年设立的,专门奖励那些对运算机事业作出重要奉献的个人B. 图灵奖有“运算机界诺贝尔奖”之称C. 迄今为止,尚未华裔运算机科学家获此殊荣D. 图灵奖的名称取自运算机科学的前驱、英国科学家阿兰·图灵4.运算机在工作进程中,假设突然停电,()中的信息可不能丢失。
A. ROM和RAMB. CPU D. RAM5.完全二叉树共有2*N-1个结点,那么它的叶节点数是()。
A. N-1B. NC. 2*ND. 2N-16. 在以下各项中,()不是操作系统软件。
A. SolarisB. LinuxC. Windows VistaD. Sybase7.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,f,e,c,a,那么栈S的容量至少应该是()。
A. 6B. 5C. 4D. 38. 与十进制数相等的四进制数是()。
A. B. 131.22 C. D.9. 设字符串S=”Olympic”,S的非空子串的数量是()。
A. 28B. 29C. 16D. 1710.是最近几年来互联网的热点概念之一,其核心思想是互动与分享。
以下网站中,()是典型的应用。
第十届全国青少年信息学奥林匹克联赛初赛试题2005(普及组C 语言二小时完成)• •全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效•• 一.选择一个正确答案代码( A/B/C/D/E ),填入每题的括号内(每题1.5分,共30分)1. 在字符串"ababacbabcbdecced ”中出现次数最多的字母出现了()次。
A.6B.5C.4D.3E.2 2. 设全集 l={a,b,c,d,e,f,g,h} ()。
A.{c,e}B.{d,e}C.{e}D.{c,d,e}E.{d,f} 3. 和十进制数23的值相等的二进制数是()。
A.10110B.11011C.11011D.10111E.10011 4. 完全二叉树的结点个数为11,则它的叶结点个数为()。
A.4B.3C.5D.2E.6 5. 平面上有五个点A (5,3),B (3,5),C (2,1),D (3,3),E (5,1)。
以这五点作为完全图 G 的顶点,每两点之间的 直线距离是图G 中对应边的权值。
以下哪条边不是图 G 的最小生成树中的边()。
A.AD6.Intel 的首颗16位处理器是()。
A.80887. 处理器A 每秒处理的指令数是处理器 B 的2倍。
某一特定程序 P 分别编译为处理器 A 和处理器B 的指令,编 译结果处理器A 的指令数是处理器B 的 4倍。
已知程序P 在处理器A 上执行需要1个小时,那么在输入相同的 情况下,程序P 在处理器B 上执行需要()小时。
A.4B.2C.1D.1/2E.1/4 8.以下哪个不是计算机的输出设备()。
A.音箱 B.显示器 C.打印机 D.扫描仪 E.绘图仪 9. 下列活动中不属于信息学奥赛的系列活动的是()。
A.NOIPB.NOIC.IOID.冬令营E.程序员等级考试 10. 以下断电之后仍能保存数据的是()。
A.硬盘B.寄存器C.显存D.内存E.高速缓存 11. 以下哪个软件不是即时通信软件()。
第二十二届全国青少年信息学奥林匹克联赛初赛普及组 C++语言试题竞赛时间:2016 年 10 月 22 日 14:30~16:30选手注意:试题纸共有 9 页,答题纸共有 2 页,满分 100 分。
请在答题纸上作答,写在试题纸上的一律无效。
不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1.以下不是微软公司出品的软件是()。
A. Powerpoint B. WordC. Excel D. Acrobat Reader2. 如果 256 种颜色用二进制编码来表示,至少需要()位。
A. 6 B. 7 C. 8 D. 93.以下不属于无线通信技术的是()。
A. 蓝牙 B. WiFi C. GPRS D. 以太网4. 以下不是 CPU 生产厂商的是()。
D. IBMA. Intel B. AMD C. Microsoft5. 以下不是存储设备的是()。
D. 鼠标A. 光盘 B. 磁盘 C. 固态硬盘6.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键 A、字母键 S 和字母键 D 的顺序循环按键,即 CapsLock、A、S、D、CapsLock、A、S、D、……,屏幕上输出的第 81 个字符是字母()。
A. A B. S C. D D. a7. 二进制数 00101100 和 00010101 的和是()。
A. 00101000 B. 01000001 C. 01000100 D. 001110008. 与二进制小数 0.1 相等的八进制数是()。
D. 0.1A. 0.8 B. 0.4 C. 0. 2CCF NOIP2016 初赛普及组 C++语言试题第 1 页,共 9 页9. 以下是 32 位机器和 64 位机器的区别的是()。
A. 显示器不同 B. 硬盘大小不同C. 寻址空间不同 D. 输入法不同10. 以下关于字符串的判定语句中正确的是()。
NOIP普及组历届试题分析简介全国青少年信息学奥林匹克竞赛(National Olympiad in Informatics in Provinces,简称NOIP)是由教育部主管的我国重要的计算机竞赛之一,也是继数学、物理、化学等奥赛之后的第五个奥赛竞赛科目。
NOIP的目的是为了提高初、高中学生计算机编程能力,培养计算机及其应用等方面人才,推动计算机教学与应用的发展。
NOIP由普及组和提高组组成,普及组适合初学者,困难系数逐年递增,试题越来越难。
本文将以普及组历届试题为主,对试题进行分析,帮助初学者更好地掌握NOIP的难点和解题方法。
历届试题分析2021年2021年普及组共3道试题,分别为:•普及组-1:数论题目,给定两个数n和m,求出从1到n中可以被m整除的数的个数。
•普及组-2:暴力枚举题目,给定一个长度为n的整型数组a,请计算其中有多少个子序列满足其中的元素逆序对数量恰好等于k序列中逆序对数量的个数。
•普及组-3:贪心算法题目,有n个维度相同的矩形,每个矩形的左上和右下两个点坐标都已知,请问从这些矩形中能够组成的最大矩形的面积是多少。
,2021年的普及组试题难度适中,各个题目的知识点都不难掌握,但需要提高思维能力和编程能力。
2020年2020年普及组共3道试题,分别为:•普及组-1:模拟题目,给定一些操作,包括插入、删除、查询等操作,让我们实现对一个序列的操作。
•普及组-2:搜索算法题目,有n个物品和一个容量为v的背包,每个物品有重量w和价值c两个属性,要求将物品装入背包中,使得背包中物品的总价值最大,输出最大价值。
•普及组-3:排序算法题目,给定n个三元组(a,b,w),要求将三元组按照a从小到大、b从小到大排序,如果a和b相等,则按照w从小到大排序。
,2020年的普及组试题相对较简单,难度偏低,但需要细致的思考和编程能力。
2019年2019年普及组共3道试题,分别为:•普及组-1:分支结构和循环结构的题目,输入一个字符串,输出字符串中包含的大写字母、小写字母、数字和空格的个数。
n o i p初赛普及组c试题及答案文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]第十届全国青少年信息学奥林匹克联赛初赛试题(普及组C语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一.选择一个正确答案代码(A/B/C/D/E),填入每题的括号内(每题1.5分,共30分)1.美籍匈牙利数学家冯·诺依曼对计算机科学发展所做出的贡献是()。
A.提出理想计算机的数学模型,成为计算机科学的理论基础。
B.是世界上第一个编写计算机程序的人。
C.提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机EDVAC。
D.采用集成电路作为计算机的主要功能部件。
E.指出计算机性能将以每两年翻一番的速度向前发展。
2.下列哪个不是CPU(中央处理单元)()。
A.IntelItaniumB.DDRSDRAMC.AMDAthlon64D.AMDOpteronE.IBMPower53.下列网络上常用的名字缩写对应的中文解释错误的是()。
A.WWW(WorldWideWeb):万维网。
B.URL(UniformResourceLocator):统一资源定位器。
C.HTTP(HypertextTransferProtocol):超文本传输协议。
D.FTP(FileTransferProtocol):快速传输协议。
E.TCP(TransferControlProtocol):传输控制协议。
4.下面哪个部件对于个人桌面电脑的正常运行不是必需的()。
A.CPUB.图形卡(显卡)C.光驱D.主板E.内存5.下列哪个软件属于操作系统软件()。
A.MicrosoftWordB.金山词霸C.FoxmailD.WinRARE.RedHatLinux6.下列哪个不是计算机的存储设备()。
A.文件管理器B.内存C.高速缓存D.硬盘E.U盘7.下列说法中错误的是()。
A.CPU的基本功能就是执行指令。
完善程序题总结归纳By :七( 6 ) yx一、【题目】(哥德巴赫猜想)哥德巴赫猜想是指,任一大于2 的偶数都可写成两个质数之和。
迄今为止,这仍然是一个著名的世界难题,被誉为数学王冠上的明珠。
试编写程序,验证任一大于 2 且不超过n 的偶数都能写成两个质数之和。
#include<iostream>using namespace std;int main(){const int SIZE=1000;int n,r,p[SIZE],i,j,k,ans;bool tmp;cin>>n;r=1;p[1]=2;for(i=3;i<=n;i++){①;for(j=1;j<=r;j++)if(i% ② ==0){tmp=false;break;}if(tmp){r++;③;}}ans=0;for(i=2;i<=n/2;i++){tmp=false;for(j=1;j<=r;j++) for(k=j;k<=r;k++)if(i+i== ④ ){tmp=true;break;}if(tmp)ans++;}cout<<ans<<endl;return 0;}若输入n 为2010 ,则输出⑤ 时表示验证成功,即大于 2 且不超过2010 的偶数都满足哥德巴赫猜想。
【算法】先for 一遍,找出质数,然后对每一个偶数进行一一匹配(2 除外),效率O (n^3 )【代码】1、tmp=1 ;2 、p[j];3 、p[r]=j;4 、p[j]+p[k]5 、1004【年份】2010 年二、【题目】(过河问题)在一个月黑风高的夜晚,有一群人在河的右岸, 想通过唯一的一根独木桥走到河的左岸.在伸手不见五指的黑夜里,过桥时必须借照灯光来照明, 不幸的是, 他们只有一盏灯.另外,独木桥上最多能承受两个人同时经过,否则将会坍塌.每个人单独过独木桥都需要一定的时间,不同的人要的时间可能不同. 两个人一起过独木桥时,由于只有一盏灯, 所以需要的时间是较慢的那个人单独过桥所花费的时间.现在输入N(2<=N<1000)和这N 个人单独过桥需要的时间,请计算总共最少需要多少时间, 他们才能全部到达河左岸.例如,有3个人甲、乙、丙,他们单独过桥的时间分别为1、2 、4,则总共最少需要的时间为7. 具体方法是:甲、乙一起过桥到河的左岸,甲单独回到河的右岸将灯带回, 然后甲、丙在一起过桥到河的左岸,总时间为2+1+4=7.#include<iostream>#include<cstring>using namespace std;const int size=100;const int infinity = 10000;const bool left=1;const bool right =0;const bool left_to_right=1;const bool right_to_left=0;int n,hour[size];bool pos[size];int max(int a,int b){return a>b?a:b;}int go(bool stage){int i,j,num,tmp,ans;if(stage==right_to_left){num=0;ans=0;for(i=1;i<=n;i++)if(pos[i]==right){num++;if( hour[i]>ans) ans=hour[i];}if( ① )return ans;ans=infinity;for(i=1;i<=n-1;i++)if(pos[i]==right)for(j=i+1;j<=n;j++)if(pos[j]==right){pos[i]=left;pos[j]=left;tmp=max(hour[i],hour[j])+ if(tmp<ans)ans=tmp;pos[i]=right;pos[j]=right;return ans;}if(stage==left_to_right){ans=infinity;for(i=1;i<=n;i++)if( ③ ) {pos[i]=right;tmp= ④if(tmp<ans)ans=tmp;⑤;}return ans;}return 0;}int main(){int i;cin>>n;for(i=1;i<=n;i++){cin>>hour[i];pos[i]=right;}cout<<go[right_to_left)<<endl;return 0;}【算法】利用深搜,左右交替寻找最优解(maybe 是动态规划)【代码】1 、num<=2;2 、go[1];3 、pos[j]==1;4、hour[i]+go[0];5 、pos[i]=1;【年份】2010 年三、【题目】(子矩阵) 给输入一个n1*m1 的矩阵a,和n2*m2 的矩阵b , b 相等。
第二十一届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2015 年10 月11 日14:30-16:30一、单项选择题(共20 题,每题1.5 分,共计30 分;每题有且仅有一个正确选项)1. 1MB 等于( )。
A.10000 字节B.1024 字节C.1000×1000 字节D.1024×1024 字节2.在 PC 机中,PENTIUM(奔腾)、酷睿、赛扬等是指( )。
A.生产厂家名称B.硬盘的型号C.CPU 的型号D.显示器的型号3.操作系统的作用是( )。
A.把源程序译成目标程序B.便于进行数据管理C.控制和管理系统资源D.实现硬件之间的连接4.在计算机内部用来传送、存贮、加工处理的数据或指令都是以( )形式进行的。
A.二进制码B.八进制码C.十进制码D.智能拼音码5.下列说法正确的是( )。
A.CPU 的主要任务是执行数据运算和程序控制B.存储器具有记忆能力,其中信息任何时候都不会丢失C.两个显示器屏幕尺寸相同,则它们的分辨率必定相同D.个人用户只能使用 Wifi 的方式连接到 Internet6.二进制数 00100100 和 00010100 的和是( )。
A.00101000B.01100111C.0100010D.001110007.与二进制小数 0.1 相等的十六进制数是( )。
A.0.8B.0.4C.0.2D.0.18.所谓的“中断”是指( )。
A.操作系统随意停止一个程序的运行B.当出现需要时,CPU 暂时停止当前程序的执行转而执行处理新情况的过程C.因停机而停止一个程序的运行D.电脑死机9.计算机病毒是( )。
A.通过计算机传播的危害人体健康的一种病毒B.人为制造的能够侵入计算机系统并给计算机带来故障的程序或指令集合C.一种由于计算机元器件老化而产生的对生态环境有害的物质D.利用计算机的海量高速运算能力而研制出来的用于疾病预防的新型病毒10.FTP 可以用于( )。
noip复赛总结归纳(2010至2015年c++普及组复赛试题)一、【题目】1.数字统计(two.pas/c/cpp)【问题描述】请统计某个给定范围[L, R]的所有整数中,数字2 出现的次数。
比如给定范围[2, 22],数字2 在数2 中出现了1 次,在数12 中出现1 次,在数20 中出现1 次,在数21 中出现1 次,在数22 中出现2 次,所以数字2 在该范围内一共出现了6次。
【输入】输入文件名为two.in。
输入共1 行,为两个正整数L 和R,之间用一个空格隔开。
【输出】输出文件名为two.out。
输出共1 行,表示数字2 出现的次数。
【输入输出样例1】two.in two.out2 22 6【输入输出样例2】two.in two.out2 100 20【数据范围】1 ≤ L ≤ R≤ 10000。
【算法】把每一位分出来,一一判断【代码】#include<cstdio>using namespace std;int main(){int r,l,ans=0;scanf("%d%d",&r,&l);for(int i=r;i<=l;i++)//一一判断{int num=i;while(num>0)//把每一位分离{if(num%10==2)ans++;num/=10;}}printf("%d",ans);return 0;}【年份】2010二、【题目】2.接水问题(water.pas/c/cpp)【问题描述】学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。
现在有n 名同学准备接水,他们的初始接水顺序已经确定。
将这些同学按接水顺序从1到n 编号,i 号同学的接水量为wi。
接水开始时,1 到m 号同学各占一个水龙头,并同时打开水龙头接水。
当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水。
N O I P初赛普及组C试题及答案集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)第二十三届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2017年10月14日14:30~16:30选手注意:●试题纸共有7页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上的一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1.在8表示的数是十进制下的()。
A.43B.-85C.-43D.-842.计算机存储数据的基本单位是()。
A.bitB.ByteC.GBD.KB3.下列协议中与电子邮件无关的是()。
A.POP3B.SMTPC.WTOD.IMAP4.分辨率为800x600、16位色的位图,存储图像信息所需的空间为()。
A.937.5KBB.4218.75KBC.4320KBD.2880KB5.计算机应用的最早领域是()。
A.数值计算B.人工智能C.机器人D.过程控制6.下列不属于面向对象程序设计语言的是()。
A.CB.C++C.JavaD.C#7.NOI的中文意思是()。
A.中国信息学联赛B.全国青少年信息学奥林匹克竞赛C.中国青少年信息学奥林匹克竞赛D.中国计算机协会8.2017年10月1日是星期日,1999年10月1日是()。
A.星期三B.星期日C.星期五D.星期二9.甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,乙、丙各选修3门,则不同的选修方案共有()种。
A.36B.48C.96D.19210.设G是有n个结点、m条边(n≤m)的连通图,必须删去G的()条边,才能使得G变成一棵树。
A.m–n+1B.m-nC.m+n+1D.n–m+111.对于给定的序列{ak},我们把(i,j)称为逆序对当且仅当i<j且ai>aj。
其次十届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题2022年一、快单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项).以下哪个是面对对象的高级语言()。
A.汇编语言B.C++C.FortranD.Basic 【学问点】计算机语言根底常识【把握度】了解【学问分析】面对对象语言是一类以对象作为根本程序构造单位的程序设计语言,指用于描述的设计是以对象为核心, 而对象是程序运行时刻的根本成分。
语言中供给了类、继承等成分,有识认性、多态性、类别性和继 承性四个主要特点。
而面对对象只是〜种编程思想。
汇编语言:低级语言C++:面对对象高级语言Fortran :高级语言 Basic :高级语言TB 代表的字节数是()(>A.2的10次方B.2的20次方C.2的30次方【学问点】计算机存储进制换算【把握度】把握【学问分析】1KB=1024B = 2ioB1MB=1024KB=220B1GB=1024MB=23O B1TB=1024GB=2.oB .二进制数 00100100 和(X)OIOIOI的和是()oA.00101000B.001010100C.01000101【学问点】二进制运算【把握度】把握.以下哪一种设备属于输出设备()。
A.扫描仪B.键盘C.鼠标D.打印机【学问点】计算机组成原理【把握度】把握【学问分析】硬件组成:掌握器(Control ):是整个计算机的中枢神经,其功能是对程序规定的掌握信息进展解释,依据其要求进展 掌握,调度程序、数据、地址,协调计算机各局部工作及内存与外设的访问等。
运算器(Datapath ):运算器的功能是对数据进展各种算术运算和规律运算,即对数据进展加工处理… 存储器(Memory ):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时供给这些信【把握度】把握【学问分析】该题目是将全部小写字母转化为大写字母,是基于ASCH 码的根本操作4.#include <iostream>using namespace std;const int SIZE = 100;int main(int p[SIZE];int n, tot, i, cn;D.2的40次方D.00111001cin » n;for(i = 1; i <= n; i++)p[i]=l;for(i = 2; i <= n; i++){if(p[i] == 1)tot++;cn = i * 2;while(cn <= n){p[cn] = 0;cn += i;))cout « tot « endl;return 0;}输入:30输出:10【学问点】C++编程【把握度】把握【学问分析】该题目是求30以内素数的个数,学生需要把握三大构造的运行模式四、完善程序(共2题,共计28分)1.(数字删除)下面程序的功能是将字符串中的数字字符删除后输出。
完善程序题总结归纳By:七(6) yx一、【题目】(哥德巴赫猜想)哥德巴赫猜想是指,任一大于2的偶数都可写成两个质数之和。
迄今为止,这仍然是一个著名的世界难题,被誉为数学王冠上的明珠。
试编写程序,验证任一大于2且不超过n的偶数都能写成两个质数之和。
#include<iostream>using namespace std;int main(){const int SIZE=1000;int n,r,p[SIZE],i,j,k,ans;bool tmp;cin>>n;r=1;p[1]=2;for(i=3;i<=n;i++){①;for(j=1;j<=r;j++)if(i% ②==0){tmp=false;break;}if(tmp){r++;③;}}ans=0;for(i=2;i<=n/2;i++){tmp=false;for(j=1;j<=r;j++)for(k=j;k<=r;k++)if(i+i== ④ ){tmp=true;break;}if(tmp)ans++;}cout<<ans<<endl;return 0;}若输入n为2010,则输出⑤时表示验证成功,即大于2且不超过2010的偶数都满足哥德巴赫猜想。
【算法】先for一遍,找出质数,然后对每一个偶数进行一一匹配(2除外),效率O(n^3)【代码】1、tmp=1;2、p[j];3、p[r]=j;4、p[j]+p[k]5、1004【年份】2010年二、【题目】(过河问题) 在一个月黑风高的夜晚,有一群人在河的右岸,想通过唯一的一根独木桥走到河的左岸.在伸手不见五指的黑夜里,过桥时必须借照灯光来照明,不幸的是,他们只有一盏灯.另外,独木桥上最多能承受两个人同时经过,否则将会坍塌.每个人单独过独木桥都需要一定的时间,不同的人要的时间可能不同.两个人一起过独木桥时,由于只有一盏灯,所以需要的时间是较慢的那个人单独过桥所花费的时间.现在输入N(2<=N<1000)和这N个人单独过桥需要的时间,请计算总共最少需要多少时间,他们才能全部到达河左岸.例如,有3个人甲、乙、丙,他们单独过桥的时间分别为1、2、4,则总共最少需要的时间为7.具体方法是:甲、乙一起过桥到河的左岸,甲单独回到河的右岸将灯带回,然后甲、丙在一起过桥到河的左岸,总时间为2+1+4=7.#include<iostream>#include<cstring>using namespace std;const int size=100;const int infinity = 10000;const bool left=1;const bool right =0;const bool left_to_right=1;const bool right_to_left=0;int n,hour[size];bool pos[size];int max(int a,int b){return a>b?a:b;}int go(bool stage){int i,j,num,tmp,ans;if(stage==right_to_left){num=0;ans=0;for(i=1;i<=n;i++)if(pos[i]==right){num++;if( hour[i]>ans)ans=hour[i];}if( ① )return ans;ans=infinity;for(i=1;i<=n-1;i++)if(pos[i]==right)for(j=i+1;j<=n;j++)if(pos[j]==right){pos[i]=left;pos[j]=left;tmp=max(hour[i],hour[j])+ ②; if(tmp<ans)ans=tmp;pos[i]=right;pos[j]=right;}return ans;}if(stage==left_to_right){ans=infinity;for(i=1;i<=n;i++)if( ③ ){pos[i]=right;tmp= ④ ;if(tmp<ans)ans=tmp;⑤;}return ans;}return 0;}int main(){int i;cin>>n;for(i=1;i<=n;i++){cin>>hour[i];pos[i]=right;}cout<<go[right_to_left)<<endl;return 0;}【算法】利用深搜,左右交替寻找最优解(maybe是动态规划)【代码】1、num<=2;2、go[1];3、pos[j]==1;4、hour[i]+go[0];5、pos[i]=1;【年份】2010年三、【题目】(子矩阵)给输入一个n1*m1的矩阵a,和n2*m2的矩阵b,问a中是否存在子矩阵和b相等。
若存在,输出所有子矩阵左上角的坐标:若不存在输出“There isno answer”。
#include<iostream>using namespace std;const int SIZE = 50;int n1,m1,n2,m2,a[SIZE][SIZE],b[SIZE][SIZE];int main(){int i,j,k1,k2;bool good,haveAns;cin>>n1>>m1;for(i=1;i<=n1;i++)for(j=1;j<=m1;j++)cin>>a[i][j];cin>>n2>>m2;for(i=1;i<=n2;i++)for(j=1;j<=m2;j++)①;haveAns=false;for(i=1;i<=n1-n2+1;i++)for(j=1;j<=②;j++){③;for(k1=1;k1<=n2;k1++)for(k2=1;k2<=④;k2++){if(a[i+k1-1][j+k2-1]!=b[k1][k2])good=false;}if(good){cout<<i<<' '<<j<<endl;⑤;}}if(!haveAns)cout<<"There is no answer"<<endl;return 0;}【算法】枚举每一条对角线,进行判断。
【代码】1、cin>>b[i][j];2、m1-m2+1;3、good=1;4、m2;5、haveAns=1; 【年份】2011年四、【题目】(大整数开方)输入一个正整数n(1≤n≤10100),试用二分法计算它的平方根的整数部分。
#include<iostream>#include<string>using namespace std;const int SIZE=200;struct hugeint{int len,num[SIZE];};//其中len表示大整数的位数;num[1]表示个位,num[2]表示十位,以此类推hugeint times(hugeint a,hugeint b)// 计算大整数a和b的乘积{int i,j;hugeint ans;memset(ans.num,0,sizeof(ans.num));for(i=1;i<=a.len;i++)for(j=1;j<=b.len;j++)①+=a.num[i]*b.num[j];for(i=1;i<=a.len+b.len;i++){ans.num[i+1]+=ans.num[i]/10;②;}if(ans.num[a.len+b.len]>0)ans.len=a.len+b.len;elseans.len=a.len+b.len-1;}hugeint add(hugeint a,hugeint b)//计算大整数a和b 的和{int i;hugeint ans;memset(ans.num,0,sizeof(ans.num)); if(a.len>b.len)ans.len=a.len;elseans.len=b.len;for(i=1;i<=ans.len;i++){ans.num[i]+= ③;ans.num[i+1]+= ans.num[i]/10;ans.num[i]%=10;}if(ans.num[ans.len+1]>0)ans.len++;return ans;}hugeint average(hugeint a,hugeint b)//计算大整数a和b的平均数的整数部分{int i;hugeint ans;ans=add(a,b);for(i=ans.len;i>=2;i--){ans.num[i-1]+=( ④ )*10;ans.num[i]/=2;}ans.num[1]/=2;if(ans.num[ans.len]==0)ans.len--;return ans;}hugeint plustwo(hugeint a)// 计算大整数a加2之后的结果{int i;ans=a;ans.num[1]+=2;i=1;while( (i<=ans.len)&&(ans.num[i]>=10) ){ans.num[i+1]+=ans.num[i]/10;ans.num[i]%=10;i++;}if(ans.num[ans.len+1]>0)⑤;return ans;}bool over(hugeint a,hugeint b)// 若大整数a>b则返回true,否则返回false{int i;if( ⑥)return false;if( a.len>b.len )return true;for(i=a.len;i>=1;i--){if(a.num[i]<b.num[i])return false;if(a.num[i]>b.num[i])return true;}return false;}int main(){string s;int i;hugeint target,left,middle,right;cin>>s;memset(target.num,0,sizeof(target.num));target.len=s.length();for(i=1;i<=target.len;i++)target.num[i]=s[target.len-i]- ⑦; memset(left.num,0,sizeof(left.num));left.len=1;left.num[1]=1;right=target;do{middle=average(left,right);if(over( ⑧ ))right=middle;elseleft=middle;}while(!over(plustwo(left),right) );for(i=left.len;i>=1;i--)cout<<left.num[i];return 0;}【算法】每二分一次,就判断一下答案在哪个区间,然后在那个区间继续二分,避免不必要的计算。