NOIP2018普及组初赛题详细解析
noip2018普及组初赛试题+答案
第24届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2 0 18 年10月13日14: 30-1 6:30选手注意:1、试题纸共有7页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上得一律无效。
2、不得使用任何电子设备(如计算器、手机、电子词典等)或査阅任何书籍资料。
一、单项选择题(共1 5题,每题2分,共计3 0分;每题有且仅有一个正确选项)1、以下哪一种设备属于输出设备:()A、扫描仪B、键盘C、鼠标D、打印机2、下列四个不同进制得数中,与其它三项数值上不相等得就是()。
A、(269)16 (注解:2 * l 6 入2 + 6 * 16^ 1 +9 * 1 6八0 = 617)B、(617)10C、(1 15 1)8 (注解:1 * 8入3 + 1 ± 8 ^2 +5 ^8^1+1 * 8^0 = 617)D、(1001101011) 23、1 MB 等于()。
A、100 0字节B、 1 024字节C、 1 000 X 1000 字节D、1024 X 1024 字节4、广域网得英文缩写就是()。
A、LANB、WAN (Wide Area Network)C、MAND、LNA5、中国计算机学会于()年创办全国青少年计算机程序设计竞赛。
A、 1 983B、19 8 4C、198 5D、19 8 66、如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F 得顺序循环按键,即Ca psLock. A、S、I)、F、CapsLock. A、S、D、F ................. ,屏幕上输岀得第8 1个字符就是字母()。
A、AB、SC、 DD、a7、根节点深度为0,—棵深度为h得满k( k > 1 )叉树,即除最后一层无任何子节点外, 每一层上得所有结点都有k个子结点得树,共有()个结点。
学科竞赛-2018第24届全国青少年信息学奥林匹克联赛初赛+答案
2018第24届全国青少年信息学奥林匹克联赛初赛+答案第24届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:1、试题纸共有7 页,答题纸共有2 页,满分100 分。
请在答题纸上作答,写在试题纸上的一律无效。
2、不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1. 以下哪一种设备属于输出设备:( )A.扫描仪B.键盘C.鼠标D.打印机2. 下列四个不同进制的数中,与其它三项数值上不相等的是( )。
A. (269)16 (注解:2 * 16^2 + 6 * 16^1 + 9 * 16 ^0 = 617)C. (1151)8 (注解:1 * 8^3 + 1 * 8^2 + 5 * 8^1 + 1 * 8^0 = 617)D. (1001101011)23. 1MB等于( )。
A. 1000 字节B. 1024 字节C. 1000 X 1000字节D. 1024 X 1024字节4. 广域网的英文缩写是( )。
A. LANB. WAN (Wide Area Network)C. MAND.LNA5. 中国计算机学会于( )年创办全国青少年计算机程序设计竞赛。
A. 1983B. 1984C. 19856. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F 的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、......,屏幕上输出的第81 个字符是字母( )。
A. AB. SC. DD. a7. 根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k个子结点的树,共有( )个结点。
A. (k h+1-1)/(k-1)B. k h-1C. k hD. (k h-1) / (k - 1)8. 以下排序算法中,不需要进行关键字比较操作的算法是( )。
第十八届全国青少年信息学奥林匹克竞赛初赛普及组参考答案
第十八届全国青少年信息学奥林匹克竞赛初赛普及组参考答案第十八届全国青少年信息学奥林匹克竞赛初赛普及组试题和参考答案一、单项选择题(共20题,每题1.5分,共计30分,每题有且仅有一个正确答案)1、计算机如果缺少(),将无法正常启动。
A、内存B、鼠标C、U盘D、摄像头2、()是一种先进先出的线性表。
A、栈B、队列C、哈希表D、二叉树3、目前计算机芯片(集成电路)制造的主要原料是(),它是一种能从沙子中提炼出来的物质。
A、硅B、铜C、锗D、铝4、十六进制数9A在()进制下是232。
A、四B、八C、十D、十二5、()不属于操作系统。
A、WindowsB、DOSC、PhotoshopD、NOI Linux6、如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。
A、ABCB、CBAC、ACBD、BAC7、目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。
A、显示器B、CPUC、内存D、鼠标8、使用冒泡排序对序列进行升序排序,每执行一次交换操作将会减少1个逆序对,因此序列5、4、3、2、1需要进行()次交换,才能完成冒泡排序。
A、0B、5C、10D、159、1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。
A、电子管B、晶体管C、集成电路D、超大规模集成电路10、无论是TCP/IP模型,还是OSI模型,都可视为网络的分层模型,每个网络协议都可以被归为某一层中,如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。
11、矢量图图形文件所占的存储空间较小,并且不论如何放大、缩小或旋转等都不会失真,是因为它()A、记录了大量像素块的色彩值来表示图像B、用点、直线或多边形等基于数学方程的几何图元来表示图像C、每个像素点的颜色信息均用矢量表示D、把文件保存在互联网,采用在线浏览的方式查看图像12、如果一个栈初识时为空,且当前栈中的元素从栈底到栈顶依次为a、b、c,另有元素d已经出栈,则可能的入栈顺序是()。
『NOIP2018普及组题解』
『NOIP2018普及组题解』<更新提⽰><第⼀次更新><正⽂>标题统计题⽬描述凯凯刚写了⼀篇美妙的作⽂,请问这篇作⽂的标题中有多少个字符?注意:标题中可能包含⼤、⼩写英⽂字母、数字字符、空格和换⾏符。
统计标题字符数时,空格和换⾏符不计算在内。
输⼊格式输⼊⽂件只有⼀⾏,⼀个字符串 s。
输出格式输出⽂件只有⼀⾏,包含⼀个整数,即作⽂标题的字符数(不含空格和换⾏符)。
样例数据input1234output13input2Ca 45output24样例说明样例 1 :标题中共有 3 个字符,这 3 个字符都是数字字符。
样例 2 :标题中共有 5 个字符,包括 1 个⼤写英⽂字母, 1 个⼩写英⽂字母和 2 个数字字符,还有 1 个空格。
由于空格不计⼊结果中,故标题的有效字符数为 4 个。
数据规模与约定规定∣s∣表⽰字符串 s 的长度(即字符串中的字符和空格数)。
对于 %40 的数据,1 ≤ |s| ≤ 5,保证输⼊为数字字符及⾏末换⾏符。
对于 %80 的数据,1 ≤ |s| ≤ 5,输⼊只可能包含⼤、⼩写英⽂字母、数字字符及⾏末换⾏符。
对于 %100 的数据,1 ≤ |s| ≤ 5,输⼊可能包含⼤、⼩写英⽂字母、数字字符、空格和⾏末换⾏符。
时间限制:1s空间限制:256MB解析T1和往年⼀样,还是签到题。
不过这⼀次好像更注重考察语⾔了,不少不熟悉语⾔的⼩伙伴可能就没有分了啦。
⼤概是考察如何处理输⼊吧,会⽤getline()的基本都⽤了getline()了吧,当然,不会⽤的还有其他的办法,主要是while(cin>>str)和scanf()读到换⾏符为⽌。
这样的话,只要暴⼒统计⼀下就可以了啦。
Code:#include<bits/stdc++.h>using namespace std;string s;int ans=0;int main(void){freopen("title.in","r",stdin);freopen("title.out","w",stdout);getline(cin,s);for(int i=0;i<s.size();i++){if(s[i]!=' ')ans++;}printf("%d\n",ans);return 0;}#include<bits/stdc++.h>using namespace std;char s;int ans=0;int main(){freopen("title.in","r",stdin);freopen("title.out","w",stdout);while (cin>>s){if(s>='0'&&s<='9'||s>='a'&&s<='z'||s>='A'&&s<='Z')ans++;}cout<<ans<<endl;return 0;}龙虎⽃题⽬描述轩轩和凯凯正在玩⼀款叫《龙虎⽃》的游戏,游戏的棋盘是⼀条线段,线段上有 n个兵营(⾃左⾄右编号 1 ∼n),相邻编号的兵营之间相隔1 厘⽶,即棋盘为长度为 n-1 厘⽶的线段。
2018年第二十四届全国青少年信息学奥林匹克联赛初赛普及组含答案(WORD重新整理排版)
第二十四届全国青少年信息学奥林匹克联赛初赛普及组 C++语言试题竞赛时间:2018 年 10 月 13 日 14:30~16:30(WORD重新整理排版)选手注意:●试题纸共有 7 页,答题纸共有 2 页,满分 100 分。
请在答题纸上作答,写在试题纸上的一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项)1. 以下哪一种设备属于输出设备:()A. 扫描仪B. 键盘C. 鼠标D. 打印机2. 下列四个不同进制的数中,与其它三项数值上不相等的是()。
A. (269)16B. (617)10C. (1151)8D. (1001101011)23. 1MB 等于()。
A. 1000 字节B. 1024 字节C. 1000 × 1000 字节D. 1024 × 1024 字节4. 广域网的英文缩写是()。
A. LANB. WANC. MAND. LNA5. 中国计算机学会于()年创办全国青少年计算机程序设计竞赛。
A. 1983B. 1984C. 1985D. 19866. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键 A、字母键 S、字母键D、字母键 F 的顺序循环按键,即 CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第 81 个字符是字母()。
A. AB. SC. DD. a7. 根节点深度为 0,一棵深度为 h 的满 k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有 k 个子结点的树,共有()个结点。
A. (k h+1 - 1) / (k - 1)B. k h-1C. k hD. (k h-1 ) / (k - 1)8. 以下排序算法中,不需要进行关键字比较操作的算法是()。
2018年noip普及组第二题
2018年noip普及组第二题一、题目背景介绍2018年NOIp普及组第二题是一道动态规划题目。
题目描述如下:有一个长度为n的数组,每次可以选择一个数字,将它与数组中第一个数字相加。
求最少需要多少次操作,可以使数组中的所有数字变成非负数。
二、题目分析为了使数组中的所有数字变成非负数,我们可以将负数移到数组的末尾。
每次操作可以将第一个数字与一个负数相加,从而使得第一个数字的非负性更强。
因此,我们需要找到一个策略,使得每次操作都可以使得数组更好。
三、算法思路我们可以使用动态规划来解决这个问题。
定义一个数组dp,其中dp[i]表示将数组前i个数字变成非负数所需的最少操作次数。
状态转移方程为:dp[i] = min(dp[i-1], dp[i-2] + abs(arr[i]))其中,arr[i]表示数组中的第i个数字。
四、算法实现与代码以下是使用Python实现的代码:```pythondef min_operations(nums):if not nums or max(nums) <= 0:return 0n = len(nums)dp = [float("inf")] * ndp[0] = 0dp[1] = abs(nums[1]) if nums[1] < 0 else 0for i in range(2, n):dp[i] = min(dp[i-1], dp[i-2] + abs(nums[i]))return dp[n-1]# 测试ums = [1, -2, 3, -1, 0, 2, 4, -2, 1]print(min_operations(nums)) # 输出:3```五、测试与优化我们可以对给定的数组进行测试,验证算法的正确性。
同时,可以尝试调整数组中的数字,观察算法的表现,以优化算法的性能。
六、总结与拓展本题通过动态规划解决了将数组中的所有数字变成非负数的问题。
noip2018普及组初赛试题+答案
第24届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:1、试题纸共有7 页,答题纸共有2 页,满分100 分。
请在答题纸上作答,写在试题纸上的一律无效。
2、不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1. 以下哪一种设备属于输出设备:( )A.扫描仪B.键盘C.鼠标D.打印机2. 下列四个不同进制的数中,与其它三项数值上不相等的是( )。
A. (269)16 (注解:2 * 16^2 + 6 * 16^1 + 9 * 16 ^0 = 617)B. (617)10C. (1151)8 (注解:1 * 8^3 + 1 * 8^2 + 5 * 8^1 + 1 * 8^0 = 617)D. (1001101011)23. 1MB等于( )。
A. 1000 字节B. 1024 字节C. 1000 X 1000字节D. 1024 X 1024字节4. 广域网的英文缩写是( )。
A. LANB. WAN (Wide Area Network)C. MAND.LNA5. 中国计算机学会于( )年创办全国青少年计算机程序设计竞赛。
A. 1983B. 1984C. 1985D. 19866. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F 的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、......,屏幕上输出的第81 个字符是字母( )。
A. AB. SC. DD. a7. 根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k个子结点的树,共有( )个结点。
A. (k h+1-1)/(k-1)B. k h-1C. k hD. (k h-1) / (k - 1)8. 以下排序算法中,不需要进行关键字比较操作的算法是( )。
第十八届全国青少年信息学奥林匹克竞赛初赛普及组参考答案
第十八届全国青少年信息学奥林匹克竞赛初赛普及组试题和参考答案一、单项选择题(共20题,每题1.5分,共计30分,每题有且仅有一个正确答案)1、计算机如果缺少(),将无法正常启动。
A、内存B、鼠标C、U盘D、摄像头2、()是一种先进先出的线性表。
A、栈B、队列C、哈希表D、二叉树3、目前计算机芯片(集成电路)制造的主要原料是(),它是一种能从沙子中提炼出来的物质。
A、硅B、铜C、锗D、铝4、十六进制数9A在()进制下是232。
A、四B、八C、十D、十二5、()不属于操作系统。
A、WindowsB、DOSC、PhotoshopD、NOI Linux6、如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。
A、ABCB、CBAC、ACBD、BAC7、目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。
A、显示器B、CPUC、内存D、鼠标8、使用冒泡排序对序列进行升序排序,每执行一次交换操作将会减少1个逆序对,因此序列5、4、3、2、1需要进行()次交换,才能完成冒泡排序。
A、0B、5C、10D、159、1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。
A、电子管B、晶体管C、集成电路D、超大规模集成电路10、无论是TCP/IP模型,还是OSI模型,都可视为网络的分层模型,每个网络协议都可以被归为某一层中,如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。
11、矢量图图形文件所占的存储空间较小,并且不论如何放大、缩小或旋转等都不会失真,是因为它()A、记录了大量像素块的色彩值来表示图像B、用点、直线或多边形等基于数学方程的几何图元来表示图像C、每个像素点的颜色信息均用矢量表示D、把文件保存在互联网,采用在线浏览的方式查看图像12、如果一个栈初识时为空,且当前栈中的元素从栈底到栈顶依次为a、b、c,另有元素d已经出栈,则可能的入栈顺序是()。
A、a、d、c、bB、b、a、c、dC、a、c、b、dD、d、a、b、c13、()是主要用于显示网页服务器或者文件系统的HTML文件内容,并让用户和这些文件交互的一种软件。
NOIP2018普及组初赛题详细解析
NOIP2018初赛普及组C++题目+解析二十四届全国青少年信息学奥林匹克联赛初赛——普及组一、单项选择题(共15 题,每题2 分,共计30 分;每题有且仅有一个正确选项)1. 以下哪一种设备属于输出设备:()A. 扫描仪B. 键盘C. 鼠标D. 打印机答案:D解析:扫描仪是输出设备显而易见2. 下列四个不同进制的数中,与其它三项数值上不相等的是()。
A. (269)16B. (617)10C. (1151)8D. (1001101011)2答案: D解析:都转成二进制,然后前3个都是1001101001,跟D不同3. 1MB 等于()。
A. 1000 字节B. 1024 字节C. 1000 X 1000 字节D. 1024 X 1024 字节答案:D解析:1 M B = 1024 K B = 1024 ∗ 1024 B1MB=1024KB=1024*1024B1MB=1024KB=1024∗1024B4. 广域网的英文缩写是()。
A. LANB. WANC. MAND. LNA答案:B A是局域网C是城域网5. 中国计算机学会于()年创办全国青少年计算机程序设计竞赛。
A. 1983B. 1984C. 1985D. 1986答案:B6. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F 的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第81 个字符是字母()。
A. AB. SC. DD. a答案:A解析:取模7. 根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。
A. (k h+1 - 1) / (k - 1)B. k h-1C. k hD. (k h-1) / (k - 1)答案:A解析:1)假设h=2,k=2,画出完美二叉树,共7个节点。
2018年第二十四届全国青少年信息学奥林匹克联赛初赛普及组含答案WORD重新整理排版
第二十四届全国青少年信息学奥林匹克联赛初赛普及组 C++语言试题 14:30~16:30日 10 月 13 竞赛时间:2018 年)重新整理排版(WORD 选手注意:分。
请在答题纸上作答,写在试题纸 100 页,答题纸共有 2 ?试题纸共有页,满分 7上的一律无效。
不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
?;每题有且仅有一个正确选项)一、单项选择题(共 15 题,每题 2 分,共计 30 分)( 1. 以下哪一种设备属于输出设备:打印机鼠标 D. A. 扫描仪 B. 键盘 C.。
)2. 下列四个不同进制的数中,与其它三项数值上不相等的是( A. (269)16 B. (617)10 C. (1151)8 D. (1001101011)2)。
3. 1MB 等于(字节 B. 1024 字节A. 1000× 1024 C. 1000 ×字节 1000 字节 D. 1024)。
4. 广域网的英文缩写是(A. LANB. WANC. MAND. LNA)年创办全国青少年计算机程序设计竞赛。
5. 中国计算机学会于(A. 1983B. 1984C. 1985D. 1986、字母键 A如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、6. 、D、F、、A、SCapsLock、的顺序循环按键,即、字母键字母键 S D、字母键 F CapsLockA、S、D、F、……,屏幕上输出的第 81 个字符是字母()。
A. AB. SC. DD. a7. 根节点深度为 0,一棵深度为 h 的满 k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有 k 个子结点的树,共有()个结点。
h+1 - 1) / (k - 1)A. (kC. k h-1 ) / (k - 1)D. (kh-1 B. k h。
8. 以下排序算法中,不需要进行关键字比较操作的算法是()基数排序A.冒泡排序B.堆排序C.D. 直接插入排序至少需找出其中最大或最小的数,9. 给定一个含 N 个不相同数字的数组,在最坏情况下,)次次比较操作。
18届全国青少年信息学奥林匹克联赛初赛(详解)(普及组)
第十八届全国青少年信息学奥林匹克联赛初赛(普及组Pascal语言试题)竞赛时间:2012年10月13日14:30~16:30选手注意·试题纸共有10页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上一律无效。
·不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)1. 计算机如果缺少(A),将无法正常启动。
A. 内存B. 鼠标C. U盘D. 摄像头2. (B )是一种先进先出的线性表。
A. 栈B. 队列C. 哈希表(散列表)D. 二叉树解析:1.栈的定义(可参考:/course_ware/data_structure/web/zhanhuoduilie/zhanhuoduilie3.1.1.htm)栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。
(1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。
(2)当表中没有元素时称为空栈。
(3)栈为后进先出(Last In First Out)的线性表,简称为LIFO表。
栈的修改是按后进先出的原则进行。
每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。
2.队列:定义:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。
(1)允许删除的一端称为队头(Front)。
(2)允许插入的一端称为队尾(Rear)。
(3)当队列中没有元素时称为空队列。
(4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。
队列的修改是依先进先出的原则进行的。
新来的成员总是加入队尾(即不允许"加塞"),每次离开的成员总是队列头上的(不允许中途离队),即当前"最老的"成员离队。
2018年第二十四届全国青少年信息学奥林匹克联赛初赛普及组含答案
6. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照 CapsLock、字母键 A、
字母键 S、字母键 D、字母键 F 的顺序循环按键,即 CapsLock、A、S、D、F、CapsLock、
A、S、D、F、„„,屏幕上输出的第 81 个字符是字母( )。
A. A
B. S
C. D
D. a
CCF NOIP2018 初赛普及组 C++语言试题 第4页 共7页
4. #include <cstdio> int n, d[100]; bool v[100]; int main() {
scanf("%d", &n); for (int i = 0; i < n; ++i) {
scanf("%d", d + i); v[i] = false; } int cnt = 0; for (int i = 0; i < n; ++i) { if (!v[i]) {
10. 下面的故事与( )算法有着异曲同工之妙。 从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙, 庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚 讲故事„„’” A. 枚举 B. 递归 C. 贪心 D. 分治
11. 由四个没有区别的点构成的简单无向连通图的个数是( )。 A. 6 B. 7 C. 8 D. 9
a[++len] = i;
<= n; ++i)
CCF NOIP2018 初赛普及组 C++语言试题 第5页 共7页
NOIP2018 初赛普及组C++试题及答案
CCF NOIP2018 初赛普及组 C++语言试题 第 5 页,共 7 页
四、完善程序(共 2 题,每题 14 分,共计 28 分) 1. (最大公约数之和)下列程序想要求解整数������的所有约数两两之间最大公约 数的和对10007求余后的值,试补全程序。(第一空 2 分,其余 3 分) 举例来说,4的所有约数是1,2,4。1和2的最大公约数为1;2和4的最大公约 数为2;1和4的最大公约数为1。于是答案为1 + 2 + 1 = 4。 要求 getDivisor 函数的复杂度为������(√������), gcd 函数的复杂度为������(log max(������, ������))。 #include <iostream> using namespace std; const int N = 110000, P = 10007; int n; int a[N], len; int ans; void getDivisor() { len = 0; for (int i = 1; (1) <= n; ++i) if (n % i == 0) { a[++len] = i; if ( (2) != i) a[++len] = n / i; } } int gcd(int a, int b) { if (b == 0) { (3) ; } return gcd(b, (4) ); } int main() { cin >> n; getDivisor(); ans = 0; for (int i = 1; i <= len; ++i) { for (int j = i + 1; j <= len; ++j) { ans = ( (5) ) % P; } } cout << ans << endl; return 0; }
2018年第二十四届全国青少年信息学奥林匹克联赛初赛普及组含答案(WORD重新整理排版)
第二十四届全国青少年信息学奥林匹克联赛初赛普及组 C++语言试题竞赛时间:2018 年 10 月 13 日 14:30~16:30(WORD重新整理排版)选手注意:●试题纸共有 7 页,答题纸共有 2 页,满分 100 分。
请在答题纸上作答,写在试题纸上的一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项)1. 以下哪一种设备属于输出设备:()A. 扫描仪B. 键盘C. 鼠标D. 打印机2. 下列四个不同进制的数中,与其它三项数值上不相等的是()。
A. (269)16B. (617)10C. (1151)8D. (1001101011)23. 1MB 等于()。
A. 1000 字节B. 1024 字节C. 1000 × 1000 字节D. 1024 × 1024 字节4. 广域网的英文缩写是()。
A. LANB. WANC. MAND. LNA5. 中国计算机学会于()年创办全国青少年计算机程序设计竞赛。
A. 1983B. 1984C. 1985D. 19866. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键 A、字母键 S、字母键 D、字母键 F 的顺序循环按键,即 CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第 81 个字符是字母()。
A. AB. SC. DD. a7. 根节点深度为 0,一棵深度为 h 的满 k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有 k 个子结点的树,共有()个结点。
A. (k h+1 - 1) / (k - 1)B. k h-1C. k hD. (k h-1 ) / (k - 1)8. 以下排序算法中,不需要进行关键字比较操作的算法是()。
2018年noip普及组第二题
2018年noip普及组第二题(原创版)目录1.题目概述2.题目分析3.解题思路4.代码实现5.总结正文一、题目概述2018 年 noip 普及组第二题,题目名称为“数值计算”,主要考察对于数值计算的基本理解和编程实现能力。
题目要求实现一个简单的计算器功能,包括加法、减法、乘法和除法四种运算。
二、题目分析题目给出了 1000 个测试用例,每个测试用例包含四个整数,分别表示两个加数、被减数和减数、两个因数以及除数和被除数。
要求对于每组输入,输出相应的运算结果。
需要注意的是,题目要求处理一些边界情况,例如除数为 0 等。
三、解题思路针对这道题目,我们可以采用以下步骤进行解题:1.首先读取输入文件,将 1000 个测试用例的输入数据存储到程序中。
2.对每个测试用例,分别进行加法、减法、乘法和除法运算。
3.处理边界情况,例如除数为 0 等。
4.输出每个测试用例的运算结果。
四、代码实现以下是一个简单的 Python 实现:```pythondef read_input():with open("input.txt", "r") as f:return [list(map(int, input().split())) for _ in range(1000)]def calculate(nums):result = [0] * 4result[0] = nums[0] + nums[1]result[1] = nums[0] - nums[2]result[2] = nums[0] * nums[1]if nums[3] == 0:result[3] = "Error"else:result[3] = nums[0] / nums[3]return resultdef main():inputs = read_input()results = [calculate(nums) for nums in inputs]for result in results:print(" ".join(map(str, result)))if __name__ == "__main__":main()```五、总结这道题目较为简单,主要考察对于数值计算的基本理解和编程实现能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NOIP2018初赛普及组C++题目+解析二十四届全国青少年信息学奥林匹克联赛初赛——普及组一、单项选择题(共15 题,每题2 分,共计30 分;每题有且仅有一个正确选项)1. 以下哪一种设备属于输出设备:()A. 扫描仪B. 键盘C. 鼠标D. 打印机答案:D解析:扫描仪是输出设备显而易见2. 下列四个不同进制的数中,与其它三项数值上不相等的是()。
A. (269)16B. (617)10C. (1151)8D. (1001101011)2答案: D解析:都转成二进制,然后前3个都是1001101001,跟D不同3. 1MB 等于()。
A. 1000 字节B. 1024 字节C. 1000 X 1000 字节D. 1024 X 1024 字节答案:D解析:1 M B = 1024 K B = 1024 ∗ 1024 B1MB=1024KB=1024*1024B1MB=1024KB=1024∗1024B4. 广域网的英文缩写是()。
A. LANB. WANC. MAND. LNA答案:B A是局域网C是城域网5. 中国计算机学会于()年创办全国青少年计算机程序设计竞赛。
A. 1983B. 1984C. 1985D. 1986答案:B6. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F 的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第81 个字符是字母()。
A. AB. SC. DD. a答案:A解析:取模7. 根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。
A. (k h+1 - 1) / (k - 1)B. k h-1C. k hD. (k h-1) / (k - 1)答案:A解析:1)假设h=2,k=2,画出完美二叉树,共7个节点。
2)对4个答案代入运算,结果为A8. 以下排序算法中,不需要进行关键字比较操作的算法是(A)。
A.基数排序B.冒泡排序C.堆排序D.直接插入排序答案:A解析:基数排序是桶排序的扩展,将要排序的元素分配至某些“桶”中,达到排序的作用,不需要关键字比较9. 给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。
则最坏情况下,在该数组中同时找最大与最小的数至少需要()次比较操作。
(⌈⌉表示向上取整,⌊⌋表示向下取整)A. ⌈3N / 2⌉ - 2B. ⌊3N / 2⌋ - 2C. 2N - 2D. 2N - 4答案:A解析:前两个数比较,大的为最大值, 小的为最小值, 用掉一次比较后面2 ∗ ( n −1 ) 2*(n-1)2∗(n−1)个数, 每两个比较, 大的同最大值比较, 小的同最小值比较, 3 ∗ ( n − 1 ) 3*(n-1)3∗(n−1)次比较, 共3 ∗ ( n − 1 ) + 1 = 3 n −2 3*(n -1)+1=3n-23∗(n−1)+1=3n−2次比较。
那n个数就是⌈ ( 3 n / 2 ) − 2 ⌉ \lceil (3n/2)-2 \rceil⌈(3n/2)−2⌉10. 下面的故事与()算法有着异曲同工之妙。
从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事……’”A. 枚举B. 递归C. 贪心D. 分治答案:B解析:基础题11. 由四个没有区别的点构成的简单无向连通图的个数是()。
A. 6B. 7C. 8D. 9答案:A解析:三条边的图有两个(单点的并,长为3的路,星图)四条边的图有两个(圈,三角形加一条边)五条边的图有一个(一条边的图的补图)六条边的图有一个(即4个点的完全图)12. 设含有10 个元素的集合的全部子集数为S,其中由7 个元素组成的子集数为T,则T / S 的值为()。
A. 5 / 32B. 15 / 128C. 1 / 8D. 21 / 128答案:B解析:如果考虑S是10位的二进制,1表示选,0表示不选,然后S = 210 T = C 10 7 T=C107,T/ S = 15/12813. 10000 以内,与10000 互质的正整数有()个。
A. 2000B. 4000C. 6000D. 8000答案:B解析:10000分解质因子:10000 =2*2*2*2*5*5*5*5,10000以内被2整除的数有5000个,10000以内被5整除的数有2000个,能同时被2和整除的数被重复计算,即被10整除的数,有1000个。
被2或5整除的数有:5000 +2000 – 1000 =6000。
互质的数有:10000 - 6000 =4000个14. 为了统计一个非负整数的二进制形式中1 的个数,代码如下:int CountBit(int x){int ret = 0;while (x){ret++;___________;}return ret;}则空格内要填入的语句是()。
A. x >>= 1B. x &= x - 1C. x |= x >> 1D. x <<= 1答案:B解析:x = x&(x-1)其实是二进制从后往前去掉1个1,如果不明白也可以一个数,比如用一个数5=(101)2A选项模拟,结果为3;B选项模拟,结果为2;C选项模拟,死循环;D选项模拟,死循环15. 下图中所使用的数据结构是()。
A. 哈希表B. 栈C. 队列D. 二叉树答案:B解析:最基础的数据结构二、问题求解(共2 题,每题5 分,共计10 分)1. 甲乙丙丁四人在考虑周末要不要外出郊游。
已知①如果周末下雨,并且乙不去,则甲一定不去;②如果乙去,则丁一定去;③如果丙去,则丁一定不去;④如果丁不去,而且甲不去,则丙一定不去。
如果周末丙去了,则甲________(去了/没去)(1 分),乙________(去了/没去)(1 分),丁________(去了/没去)(1 分),周末________(下雨/没下雨)(2 分)。
答案:去了,不去,不去,没下雨解析:首先丙去了,所以丁不去,然后根据(4)得知甲去了和根据(2)得知乙不去,最后根据(1)得知不下首先丙去了,所以丁不去,然后根据(4)得知甲去了和根据(2)得知乙不去,最后根据(1)得知不下2. 从1 到2018 这2018 个数中,共有__________个包含数字8 的数。
包含数字8 的数是指有某一位是“8”的数,例如“2018”与“188”。
答案:544解析:首先个位数是8的个数是2018 / 10 = 201 2018/10=2012018/10=201加一个2018就是202个,然后十位数是8个位数不是的个数是2018 / 100 ∗ 9 = 180 2018/100*9=1802018/100∗9=180,然后百位数是8,十位个位都不是的是2018 / 1000 ∗ 81 = 162 2018/1000*81=1622018/1000∗81=162。
加起来544三、阅读程序写结果(共4 题,每题8 分,共计32 分)1. #include <cstdio>char st[100];int main() {scanf("%s", st);for (int i = 0; st[i]; ++i) {if ('A' <= st[i] && st[i] <= 'Z')st[i] += 1;}printf("%s\n", st);return 0;}输入:QuanGuoLianSai输出:_________答案:RuanHuoNianTai解析:大写字母加12. #include <cstdio>int main() {int x;scanf("%d", &x);int res = 0;for (int i = 0; i < x; ++i) {if (i * i % x == 1) {++res;}printf("%d", res);return 0;}输入:15输出:_________答案:4解析:1,4,11,14这4个数3.#include <iostream>using namespace std;int n, m;int findans(int n, int m) {if (n == 0) return m;if (m == 0) return n % 3;return findans(n - 1, m) - findans(n, m - 1) + findans(n - 1, m - 1);}int main(){cin >> n >> m;cout << findans(n, m) << endl;return 0;}输入:5 6输出:_________答案:8解析:自己列个表格4. #include <cstdio>int n, d[100];bool v[100];int main() {scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d", d + i);v[i] = false;}int cnt = 0;for (int i = 0; i < n; ++i) {if (!v[i]) {for (int j = i; !v[j]; j = d[j]) {v[j] = true;}++cnt;}}printf("%d\n", cnt);return 0;}输入:10 7 1 4 3 2 5 9 8 0 6输出:_________答案:6解析:暴力模拟四、完善程序(共2 题,每题14 分,共计28 分)1. (最大公约数之和)下列程序想要求解整数n的所有约数两两之间最大公约数的和对10007求余后的值,试补全程序。
(第一空2 分,其余3 分)举例来说,4的所有约数是1,2,4。
1和2的最大公约数为1;2和4的最大公约数为2;1和4的最大公约数为1。
于是答案为1 + 2 + 1 = 4。
要求getDivisor 函数的复杂度为O(√n),gcd 函数的复杂度为O(log max(a, b))。