Noip2014初赛提高组C试题及答案
NOIP2014提高组复赛试题day1day2
CCF全国信息学奥林匹克联赛(NOIP2014复赛提高组dayl1.生活大爆炸版石头剪刀布(rps.cpp/c/pas)【问题描述】石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。
如果两个人出拳样,则不分胜负。
在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。
升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。
蜥蜴人:《星际迷航》中的反面角色。
这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。
现在,小A和小B尝试玩这种升级版的猜拳游戏。
已知他们的出拳都是有周期性规律的,但周期长度不一定相等。
例如:如果小A以“石头-布-石头-剪刀-蜥蜴人-斯波克”长度为6的周期出拳,那么他的出拳序列就是“石头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头-剪刀-蜥蜴人-斯波克-……”,而如果小B以“剪刀-石头-布-斯波克-蜥蜴人”长度为5的周期出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布-斯波克-蜥蜴人-……”已知小A和小B一共进行N次猜拳。
每一次赢的人得1分,输的得0分;平局两人都得0分。
现请你统计N次猜拳结束之后两人的得分。
【输入】输入文件名为rps.in。
第一行包含三个整数:N,NANB分别表示共进行N次猜拳、小A出拳的周期长度,小B出拳的周期长度。
数与数之间以一个空格分隔。
第二行包含NA个整数,表示小A出拳的规律,第三行包含NB个整数,表示小B出拳的规律。
其中,0表示“剪刀”,1表示“石头”,2表示“布”,3表示“蜥蜴人”,4表示“斯波克”。
数与数之间以一个空格分隔。
【输出】输出文件名为rps.out。
输出一行,包含两个整数,以一个空格分隔,分别表示小A、小B的得分。
【数据说明】对于100%勺数据,0<N<200,0<NA&200,0<NB&200。
2.联合权值(link.cpp/c/pas)【问题描述】无向连通图G有n个点,n-1条边。
2009_2014NOIP初赛提高组C 语言试题和参考答案解析45
2009-2013年NOIP初赛提高组C++语言试题2013第十九届全国青少年信息学奥林匹克联赛初赛提高组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.1282.二进制数11.01在十进制下是()。
A.3.25 B.4.125 C.6.25 D.11.1253.下面的故事与()算法有着异曲同工之妙。
从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:?从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’?A.枚举B.递归C.贪心D.分治4.1948年,()将热力学中的熵引入信息通信领域,标志着信息论研究的开端。
A.冯·诺伊曼(John von Neumann)B.图灵(Alan Turing)C.欧拉(Leonhard Euler)D.克劳德·香农(Claude Shannon)5.已知一棵二叉树有2013个节点,则其中至多有()个节点有2个子节点。
A.1006B.1007C.1023D.10246.在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。
右图是一个有5个顶点、8条边的连通图。
若要使它不再是连通图,至少要删去其中的()条边。
A.2B.3C.4D.57.斐波那契数列的定义如下:F1=1,F2=1,Fn=Fn–1+Fn–2(n≥3)。
如果用下面的函数计算斐波那契数列的第n项,则其时间复杂度为()。
int F(int n){if(n<=2)return 1;elsereturn F(n-1)+F(n-2);})A.O(1)B.O(n)C.O(n2)D.O(Fn8.二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子树上所有节点的值。
NOIP2014初赛普及组C 题目及答案
第二十届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题2014年一、快单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)⒈以下哪个是面向对象的高级语言( )。
A.汇编语言B.C++C.FortranD.Basic⒉1TB代表的字节数是( )。
A.2的10次方B.2的20次方C.2的30次方D.2的40次方⒊二进制数00100100和00010101的和是( )。
A.00101000B.001010100C.01000101D.00111001⒋以下哪一种设备属于输出设备( )。
A.扫描仪B.键盘C.鼠标D.打印机⒌下列对操作系统功能的描述最为完整的是( )。
A.负责外设与主机之间的信息交换B.负责诊断机器的故障C.控制和管理计算机系统的各种硬件和软件资源的使用D.将没有程序编译成目标程序⒍CPU、存储器、I/O设备是通过( )连接起来的。
A.接口B.总线C.控制线D.系统文件⒎断电后会丢失数据的存储器是( )。
A.RAMB.ROMC.硬盘D.光盘⒏以下哪一种是属于电子邮件收发的协议( )。
A.SMTPB.UDPC.P2PD.FTP⒐下列选项中不属于图像格式的是( )。
A.JPEG格式B.TXT格式C.GIF格式D.PNG格式⒑链表不具有的特点是( )。
A.不必事物估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比⒒下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( )。
A.296B.133C.256D.199⒓下列几个32位IP地址中,书写错误的是( )。
A.162.105.135.27B.192.168.0.1C.256.256.129.1D.10.0.0.1⒔要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10。
#include <iostream>using namespace std;int main(){int n;float s;s = 1.0;for(n = 10; n > 1; n--)s = s + 1 / n;cout << s << endl;return 0;}程序运行后输出结果错误,导致错误结果的程序行是( )。
NOIP2014提高组复赛试题
【输入】 输入文件名为 rps.in。 第一行包含三个整数:N,NA,NB,分 别 表 示 共 进 行 N 次猜拳、小 A 出拳的周期
长度,小 B 出拳的周期长度。数与数之间以一个空格分隔。 第二行包含 NA 个整数,表示小 A 出拳的规律,第三行包含 NB 个整数,表示小 B 出拳的
【输入输出样例】 link.in
5 12 23 34 45 1 5 2 3 10
20 74
link.out
【样例说明】
本例输入的图如上所示,距离为 2 的有序点对有(1,3)、(2,4)、(3,1)、(3,5)、(4,2)、 (5,3)。其联合权值分别为 2、15、2、20、15、20。其中最大的是 20,总和为 74。
这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。
乙 甲对乙的 甲 结果
剪刀 石头 布 蜥蜴人 斯波克
表一 石头剪刀布升级版胜负关系
剪刀
石头
布
蜥蜴人
平
输
赢
赢
平
输
赢
平
输
平
斯波克
输 输 赢 赢 平
现在,小 A 和小 B 尝试玩这种升级版的猜拳游戏。已知他们的出拳都是有周期性规律的, 但周期长度不一定相等。例如:如果小 A 以“石头-布-石头-剪刀-蜥蜴人-斯波克”长度为 6 的周期出拳,那么他的出拳序列就是“石头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头 -剪刀-蜥蜴人-斯波克-……”,而如果小 B 以“剪刀-石头-布-斯波克-蜥蜴人”长度为 5 的 周期出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布-斯波克蜥蜴人-……”
NOIP2014提高组复赛试题(C语言版)
CCF全国信息学奥林匹克联赛(NOIP2014)复赛提高组day1(请选手务必仔细阅读本页内容)一.题目概况中文题目名称生活大爆炸版石头剪刀布联合权值飞扬的小鸟英文题目与子目录名rps link bird 可执行文件名rps link bird输入文件名rps.in link.in bird.in 输出文件名rps.out link.out bird.out 每个测试点时限1秒1秒1秒测试点数目101020每个测试点分值10105附加样例文件有有有结果比较方式全文比较(过滤行末空格及文末回车)题目类型传统传统传统运行内存上限128M128M128M二.交源程序文件名对于C++语言rps.cpp link.cpp bird.cpp 对于C语言rps.c link.c bird.c 对于pascal语言rps.pas link.pas bird.pas三.编译命令(不包含任何优化开关)对于C++语言g++-o rps rps.cpp–lm g++-o link link.cpp–lmg++-o bird bird.cpp–lm对于C语言gcc-o rps rps.c–lm gcc-o link link.c–lm gcc-o bird bird.c–lm对于pascal语言fpc rps.pas fpc link.pas fpc bird.pas注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm)64x2Dual Core CPU5200+,2.71GHz,内存2G,上述时限以此配置为准。
4、只供Linux格式附加样例文件。
5、特别提醒:评测在当前最新公布的NOI Linux下进行,各语言的编译器版本以其为准。
1.生活大爆炸版石头剪刀布(rps.cpp/c/pas)【问题描述】石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。
学科竞赛-NOIP2014提高组复赛试题_2
NOIP2014提高组复赛试题全国信息学奥林匹克联赛(2014)复赛提高组11.生活大爆炸版石头剪刀布()【问题描述】石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。
如果两个人出拳一样,则不分胜负。
在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。
升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。
蜥蜴人:《星际迷航》中的反面角色。
这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。
表一石头剪刀布升级版胜负关系剪刀石头布蜥蜴人斯波克甲对乙的甲'结果剪刀平输赢赢输石头平输赢输布平输赢蜥蜴人平赢斯波克平现在,小A和小B尝试玩这种升级版的猜拳游戏。
已知他们的出拳都是有周期性规律的,但周期长度不一定相等。
例如:如果小A以“石头-布-石头-剪刀-蜥蜴人-斯波克”长度为6的周期出拳,那么他的出拳序列就是“石头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头-剪刀-蜥蜴人-斯波克-……”,而如果小B 以“剪刀-石头-布-斯波克-蜥蜴人”长度为5的周期出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布-斯波克-蜥蜴人-……”已知小A和小B一共进行N次猜拳。
每一次赢的人得1分,输的得0 分;平局两人都得0 分。
现请你统计N 次猜拳结束之后两人的得分。
【输入】输入文件名为。
第一行包含三个整数:N,,,分别表示共进行N次猜拳、小A出拳的周期长度,小B出拳的周期长度。
数与数之间以一个空格分隔。
第二行包含个整数,表示小A出拳的规律,第三行包含个整数,表示小B出拳的规律。
其中,0表示“剪刀” ,1表示“石头”, 2表示“布”,3 表示“蜥蜴人” ,4 表示“斯波克”。
数与数之间以一个空格分隔。
【输出】输出文件名为。
输出一行,包含两个整数,以一个空格分隔,分别表示小A、小B的得分。
【输入输出样例1】【输入输出样例2】【数据说明】对于100%勺数据,0 2.联合权值()【问题描述】无向连通图G有n个点,1条边。
2014—2017年全国青少年信息学奥林匹克竞赛初赛提高组C语言试题(附答案)
NOIP 2017全国青少年信息学奥林匹克联赛提高组初赛试题答案一、单项选择题(共 15 题,每题 1.5 分,共计 22.5 分;每题有且仅有一个正确选项)1. 从( )年开始,NOIP 竞赛将不再支持 Pascal 语言。
A. 2020B. 2021C. 2022D. 20232.在 8 位二进制补码中,10101011 表示的数是十进制下的( )。
A. 43B. -85C. -43D.-843.分辨率为 1600x900、16 位色的位图,存储图像信息所需的空间为( )。
A. 2812.5KBB. 4218.75KBC. 4320KBD. 2880KB4. 2017年10月1日是星期日,1949年10月1日是( )。
A. 星期三B. 星期日C. 星期六D. 星期二5. 设 G 是有 n 个结点、m 条边(n ≤m)的连通图,必须删去 G 的( )条边,才能使得 G 变成一棵树。
A.m–n+1B. m-nC. m+n+1D.n–m+16. 若某算法的计算时间表示为递推关系式:T(N)=2T(N/2)+NlogNT(1)=1则该算法的时间复杂度为( )。
A.O(N)B.O(NlogN)C.O(N log2N)D.O(N2)7. 表达式a * (b + c) * d的后缀形式是()。
A. abcd*+*B. abc+*d*C. a*bc+*dD. b+c*a*d8. 由四个不同的点构成的简单无向连通图的个数是( )。
A. 32B. 35C. 38D. 419. 将7个名额分给4个不同的班级,允许有的班级没有名额,有( )种不同的分配方案。
A. 60B. 84C. 96D.12010. 若f[0]=0, f[1]=1, f[n+1]=(f[n]+f[n-1])/2,则随着i的增大,f[i]将接近与( )。
A. 1/2B. 2/3D. 111. 设A和B是两个长为n的有序数组,现在需要将A和B合并成一个排好序的数组,请问任何以元素比较作为基本运算的归并算法最坏情况下至少要做( )次比较。
(word完整版)NOIP提高组初赛历年试题及答案阅读题篇,.docx
NOIP 提高组初赛历年试题及答案阅读题篇程序写果(共 4 ,每 8 分,共 32 分)程序的最好方法并非是依次从到尾。
程序不像迷,我无法从末尾几找到答案,也不像一本引人入的籍,只需直接翻到褶最多的那几,我就能找到最精彩的片断。
因此我在程序,最好逐一考察研究每一段代,搞清楚每一段代的来去脉,理解每一段代在程序中所起的作用,而形成一个虚的程序构,并以此基来行。
1、分:高入手,逐深入,正确理解程序。
2、写注解:固化、、提已有的理解成果。
3、先模:根据代序跟踪量,模运算。
4、找律:先模几次循后,找出背后的律。
5、看功能:从代构和运算果判断程序功能。
6、猜算法:有不知道算法,通构和函数猜一猜。
7、方法:了解程序本后,一个熟悉的方法。
大多数人来,写程序是令人开心的一件事情,人的程序却很痛苦,很恐惧,宁愿自己重写一遍。
其到好的程序,就像一篇美文,令人心神怡,豁然开朗,因背后是一个人的思,甚至整个人生。
人的程序不可以巩固自己的知,启自己的思,提升自己的修养,你收,其,也是在学、在、在工作中的最重要、最常用的基本功。
如果写程序是把自己的思化代,程序就是把代化你理解的人的思。
当你程序有烈的代入感,像演一,真正入到的精神世界,面部表情也随之日丰富起来。
祝你!你通关了!之,看得多,得多,拼得多,你就考得多⋯⋯NOIP2011-1 .#include <iostream>#include <cstring>using namespace std;const int SIZE = 100;int main(){int n,i,sum,x,a[SIZE];cin>>n;memset(a,0,sizeof(a));for(i=1;i<=n;i++){cin>>x;a[x]++;}i=0;sum=0;while(sum<(n/2+1)){i++;sum+=a[i];}cout<<i<<endl;return 0;}输入:114 5 6 6 4 3 3 2 3 2 1一步步模拟,注意输出的是sum超出循环条件时的i 值(中位数),而不是sum ,也不是a[x]输出: 3NOIP2011-2 .#include <iostream> using namespace std; int n;void f2(int x,int y); void f1(int x,int y){if(x<n)f2(y,x+y);}void f2(int x,int y){cout<<x<<' ';f1(y,x+y);}int main(){cin>>n;f1(0,1);return 0;}输入: 30此为简单的递归题,依次输出f2(x,y)中的x值,注意边界条件时f1(x,y)的x>=30咦!这不是隔一个输出一个的Fibonacci吗?输出: 1 2 5 13 34NOIP2011-3 .#include <iostream>using namespace std; const int V=100;int n,m,ans,e[V][V];bool visited[V];void dfs(int x,intlen){int i;visited[x]= true;if(len>ans)ans=len;for(i=1;i<=n;i++)if( (!visited[i]) &&(e[x][i]!=-1) ) dfs(i,len+e[x][i]);visited[x]=false;}int main(){int i,j,a,b,c;cin>>n>>m;for(i=1;i<=n;i++)for(j=1;j<=m;j++)e[i][j]=-1;for(i=1;i<=m;i++){cin>>a>>b>>c;e[a][b]=c;e[b][a]=c;}for(i=1;i<=n;i++)visited[i]=false;ans=0;for(i=1;i<=n;i++)dfs(i,0);cout<<ans<<endl;return 0;}输入:4 61 2 102 3 203 4 304 1 401 3 502 4 60一看就知这是深搜算法(DFS ),输入是个四个顶点的无向图(邻接矩阵如下):如len>ans,则 ans=len,可以说明这是个在图中用DFS找最长的路径的程序。
NOIP2014提高组复赛试题day1day2
CCF全国信息学奥林匹克联赛(NOIP2014)复赛提高组 day11.生活大爆炸版石头剪刀布(rps.cpp/c/pas)【问题描述】石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。
如果两个人出拳一样,则不分胜负。
在《生活大爆炸》第二季第8集中出现了一种石头剪刀布的升级版游戏。
升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。
蜥蜴人:《星际迷航》中的反面角色。
这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。
表一石头剪刀布升级版胜负关系乙剪刀石头布蜥蜴人斯波克甲对乙的甲结果剪刀平输赢赢输石头平输赢输布平输赢蜥蜴人平赢斯波克平现在,小A和小B尝试玩这种升级版的猜拳游戏。
已知他们的出拳都是有周期性规律的,但周期长度不一定相等。
例如:如果小A以“石头-布-石头-剪刀-蜥蜴人-斯波克”长度为6的周期出拳,那么他的出拳序列就是“石头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头-剪刀-蜥蜴人-斯波克-……”,而如果小B以“剪刀-石头-布-斯波克-蜥蜴人”长度为5的周期出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布-斯波克-蜥蜴人-……”已知小A和小B一共进行N次猜拳。
每一次赢的人得1分,输的得0分;平局两人都得0分。
现请你统计N次猜拳结束之后两人的得分。
【输入】输入文件名为rps.in。
第一行包含三个整数:N,NA,NB,分别表示共进行N次猜拳、小A出拳的周期长度,小B出拳的周期长度。
数与数之间以一个空格分隔。
第二行包含NA个整数,表示小A出拳的规律,第三行包含NB个整数,表示小B出拳的规律。
其中,0表示“剪刀”,1表示“石头”,2表示“布”,3表示“蜥蜴人”, 4表示“斯波克”。
数与数之间以一个空格分隔。
【输出】输出文件名为rps.out。
输出一行,包含两个整数,以一个空格分隔,分别表示小A、小B的得分。
【输入输出样例1】rps.in rps.out10 5 66 20 1 2 3 40 3 4 2 1 0【输入输出样例2】rps.in rps.out4 49 5 50 1 2 3 41 0 32 4【数据说明】对于100%的数据,0 < N ≤ 200,0 < NA ≤ 200, 0 < NB ≤ 200。
NOIP2014提高组复赛试题Day2
CCF全国信息学奥林匹克联赛(NOIP2014)复赛提高组 day2(请选手务必仔细阅读本页内容)二.ᨀ交源程序文件名三.编译命令(不包含任何优化开关)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) 64x2 Dual Core CPU 5200+,2.71GHz,内存2G,上述时限以此配置为准。
4、只ᨀ供Linux格式附加样例文件。
5、特别提醒:评测在当前最新公布的NOI Linux下进行,各语言的编译器版本以其为准。
1.无线网络发射器选址(wireless.cpp/c/pas)【问题描述】随着智能手机的日益普及,人们对无线网的需求日益增大。
某城市决定对城市内的公共场所覆盖无线网。
假设该城市的布局为由严格平行的129条东西向街道和129条南北向街道所形成的网格状,并且相邻的平行街道之间的距离都是恒定值1。
东西向街道从北到南依次编号为0,1,2…128,南北向街道从西到东依次编号为0,1,2…128。
东西向街道和南北向街道相交形成路口,规定编号为x的南北向街道和编号为y的东西向街道形成的路口的坐标是(x, y)。
在某些路口存在一定数量的公共场所。
由于政府财政问题,只能安装一个大型无线网络发射器。
该无线网络发射器的传播范围是一个以该点为中心,边长为2*d的正方形。
传播范围包括正方形边界。
例如下图是一个d = 1的无线网络发射器的覆盖范围示意图。
现在政府有关部门准备安装一个传播参数为d的无线网络发射器,希望你帮助他们在城市内找出合适的安装地点,使得覆盖的公共场所最多。
【输入】输入文件名为wireless.in。
第一行包含一个整数d,表示无线网络发射器的传播距离。
第二行包含一个整数n,表示有公共场所的路口数目。
接下来n行,每行给出三个整数x, y, k, 中间用一个空格隔开,分别代表路口的坐标(x, y)以及该路口公共场所的数量。
noip初赛c语言试题及答案
noip初赛c语言试题及答案1. 选择题1.1 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. intD. _variable1.2 正确答案是 D。
变量名可以以字母或下划线开头,不能以数字开头,也不能是C语言的关键字。
1.3 以下哪个选项是C语言中合法的整型常量?A. 0x1AB. 0123C. 1.2E3D. 0b10101.4 正确答案是 A。
0x1A 是十六进制表示的整数,0123 是八进制表示的整数,1.2E3 是浮点数,0b1010 是二进制表示的整数,但不是合法的C语言常量。
1.5 以下哪个选项是C语言中合法的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "HelloD. "Hello\"1.6 正确答案是 A。
"Hello, World!" 是合法的字符串常量,'Hello, World!' 是字符常量,"Hello 是不完整的字符串常量,"Hello\" 是非法的字符串常量,因为反斜杠后面没有字符。
2. 填空题2.1 以下C语言代码中,变量a的值是多少?```cint a = 5;printf("%d", a);```2.2 答案是 5。
变量a被初始化为5,然后通过printf函数输出。
2.3 以下C语言代码中,变量b的值是多少?```cint b = 10;b = b + 5;printf("%d", b);```2.4 答案是 15。
变量b被初始化为10,然后增加5,最后输出15。
3. 编程题3.1 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```3.2 程序的输出是:Sum of even numbers from 1 to 100 is: 2550。
NOIP提高组初赛及答案C
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线生高0不产中仅工资2艺料22高试2可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时2卷,32调需3各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看工且25作尽52下可22都能护可地1关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编试求5写、卷技重电保术要气护交设设装底备备置。4高调、动管中试电作线资高气,敷料中课并设3试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
NOIP2014提高组第一试题解
NOIP2014提高组第一试题解【第一题】石头剪刀布rps【题目大意】a和b石头剪刀布游戏,每个人一共有五种方式,相互之间的胜负关系给出,a和b出拳的方式是循环的,赢者得一份,其余不得分。
问n轮以后a和b的得分。
纯粹的模拟题,把胜负关系打表或者case出来即可。
1.#include <iostream>2.#include <cstdio>3.#include <cstdlib>4.ing namespace std;6.const int win[5][5] = {7. 0,0,1,1,0,8. 1,0,0,1,0,9. 0,1,0,0,1,10. 0,0,1,0,1,11. 1,1,0,0,012. };13.int a[205], b[205];14.int main()15.{16. freopen("rps.in","r",stdin);17. freopen("rps.out","w",stdout);18.int n, na, nb;19. cin>>n>>na>>nb;20.for (int i = 0; i < na; ++i) cin>> a[i];21.for (int i = 0; i < nb; ++i) cin>> b[i];22.int i = 0, j = 0;23.int ascore = 0, bscore = 0;24.while (n) {25. ascore += win[a[i]][b[j]];26. bscore += win[b[j]][a[i]];27. i = (i + 1) % na;28. j = (j + 1) % nb;29. n --;30. }31. cout << ascore << " "<< bscore<<endl;32.return 0;33.}【第二题】联合权值link给出n个点,n-1条件的图,每个点均有点权值w[i],如果i和j距离为2,那么他们会产生w[i] * w[j]的值,求问产生值中的最大值和产生值得总和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Noip2014初赛提高组试题及答案(完整版)提高组C语言试题一、单项选择题(每题1.5分,共22.5分)。
1. 以下哪个是面向对象的高级语言( ).A. 汇编语言B. C++C. FORTRAND. Basic2. 1TB代表的字节数量是( ).A. 2的10次方B. 2的20次方C. 2的30次方D. 2的40次方3. 二进制数00100100和00010101的和是( ).A. 00101000B. 001010100C. 01000101D. 001110014. TCP协议属于哪一层协议( ).A. 应用层B. 传输层C. 网络层D. 数据链路层5. 下列几个32位IP地址中,书写错误的是( ).A. 162.105.128.27B. 192.168.0.1C. 256.256.129.1D. 10.0.0.16. 在无向图中,所有定点的度数之和是边数的( )倍.A. 0.5B. 1C. 2D. 47. 对长度位n的有序单链表,若检索每个元素的概率相等,则顺序检索到表中任一元素的平均检索长度为( ).A. n/2B. (n+1)/2C. (n-1)/2D. n/48. 编译器的主要功能是( ).A. 将一种高级语言翻译成另一种高级语言B. 将源程序翻译成指令C. 将低级语言翻译成高级语言D. 将源程序重新组合9. 二进制数111.101所对应的十进制数是( ).A. 5.625B. 5.5C. 6.125D. 7.62510. 若有变量int a, float x, y, 且a=7, x=2.5, y=4.7, 则表达式x+a%3*(int)(x+y)%2/4的值大约是( ).A. 2.500000B. 2.750000C. 3.500000D. 0.00000011. 有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个续结点。
struct node {int data;struct node *next; ↑p ↑q ↑r} *p,*q,*r;现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下程序段中错误的是( ).A. q->next = r->next; p-> next = r; r->next = q;B. p->next = r; q->next = r->next; r->next = q;C. q->next = r->next; r->next = q; p->next = r;D. r->next = q; q->next = r->next; p->next = r;12. 同时查找2n 个数中的最大值和最小值,最少比较次数为( ).A. 3(n-2)/2B. 4n-2C. 3n-2D. 2n-213. 设G是有6个结点的完全图,要得到一颗生成树,需要从G中删去( )条边.A. 6B. 9C. 10D. 1514. 以下时间复杂度不是O(n2)的排序方法是( ).A. 插入排序B. 归并排序C. 冒泡排序D. 选择排序15. 以下程序实现了找第二小元素的算法。
输入时n个不等的数构成的数组S,输出S中第二小的数SecondMin。
在最坏的情况下,该算法需要做( )次比较。
if (S[1] < S[2]) {FirstMin = S[1];SecondMin = S[2];} else {FirstMin = S[2];SecondMin = S[1];}for (i = 3; i <=n; i++)if (S[1] < SecondMin)if (S[1] < FirstMin){SecondMin = FirstMin;FirstMin = S[1];} else {SecondMin = S[1];}A. 2nB. n-1C. 2n-3D. 2n-2二、不定项选择题(每题1.5分,共7.5分)。
1. 若逻辑变量A、C为真,B、D为假,以下逻辑运算表达式真的有( ).A. (B∨C∨D)∨D∧AB. ((- A∧B)∨C)∧BC. (A∧B)∨(C∧D∨-A)D. A∧(D∨-C)∧B2. 下列( )软件属于操作系统软件。
A. Microsoft WordB. Windows XPC. AndroidD. Mac OS XE. Oracle3. 在NOI比赛中,对于程序设计题,选手提交的答案不得包含下列哪些内容( ).A. 试图访问网络B. 打开或创建题目规定的输入/输出文件之外的其他文件C. 运行其他程序D. 改变文件系统的访问权限E. 读写文件系统的管理信息4. 以下哪些结构可以用来存储图( ).A. 邻接矩阵B. 栈C. 邻接表D. 二叉树5. 下列各无符号十进制整数中,能用八位二进制表示的数有( ).A. 296B. 133C. 256D. 199三、问题求解。
1. 有数字1,1,2,4,8,8所组成的不同的四位数的个数是_____.2. 如图所示,图中每条边上的数字表示该边的长度,则从A到E的最短距离是_____.四、阅读程序写结果(共4题,每题8分,共32分)。
1. #include <stdio.h>int main() {int a,b,I,tot,c1,c2;scanf(“%d%d”, &a, &d);tot = 0;for (i=a; i<=b; i++){c1=i/10;c2=i%10;if ((c1+c2)%3 ==0)tot++;}Printf(“%d\n",tot);Return 0;}输入:7 31输出:_________2. #include <stdio.h>Int fun(int n, int minNum, int maxNum){ int tot, i;if (n==0)retuen 1;tot=0;for(i=minNum; i<=maxNum; i++)tot+=fun(n-1, i=1, maxNum);return tot;}int mian(){int n, m;Scanf(“%d%d”, &n,&m);printf(“%d\n”, fum(m,1,n));return 0;}输入:6 3输出:________3.#include <stdio.h>#include <string.h>const int SIZE=100;const int LENGTH=25;// strcmp(a,b) <0:a的字典序小于b// strcmp(a,b) =1:a和b一样// strcmp(a,b) >0:a的字典序大于bint main()char dict[SIZE][LENGTH+1];int rank[SIZE];int ind[SIZE];int i,j,n,tmp;scanf(“%d”,&n);for (i=1;i<=n;i++){rank [i]=iind[i]=i;scanf(“%s”, dict[i]);}for(i=1;i<n;i++)for(j=1;j<=n-i;j++)if(strcmp(dict[ind[j]],dict[ind[j+1]])>0) {tmp=ind[j];ind[j]=ind[j+1];ind[j+1]=tmp;for(i=1;i<=n;i++)rank[ind[i]]=i;for(i=1:i<=n;i++)ptintf(%d”,rank[i]);printf(“\n”);return 0;}输入:7aaaababbbaaaaaacccaa输出:______4.#niclude <stdio.h>const int SIZE=100;int alive[SIZE];int n;int next(int num){do{num++;if(num>n)num=1;}while (alive[num]==0);return num;int main(){int m,i,j,num;scanf(“%d%d”,&n,&m);for(i=1;i<=n;i++)alive[i]=1;num=1;for(i=1;i<=n;j++){ for(j+1;j<=m;j++)num=next(num);printf(“%d”,num);alive[num]=0;if(i<n)num=next(num);}printf(\n);return 0;}输入:11 3输出:_________五、完善程序1.(双栈模拟数组)只使用两个栈结构stack1和stack2,模拟对数组的随机读取。
作为栈结构,stack1和stack2只能访问栈顶(最后一个有效元素)。
栈顶指针top1和top2均指向栈顶元素的下一个位置。
输入第一行包含的两个整数,分别是数组长度n和访问次数m,中间用单个空格隔开。
第二行包含n个整数,一次歌出数组各项(数组下标从0到a-1)。
第三行包含m个整数,需要访问的数组下标。
对于每次访问,输出对应的数组元素。
#include <stdio.h>consr int SIZE=100;int stack1[SIZE],stack2[SIZE];int top1,top2;int n,m,i,j;void clearStack(){int I;for(i=top1;i<SIZE;i++)stack[i]=0;for(i=top2;i<SIZE;i++)stack[i]=0;}int main()scanf(%d,%d”,&n,&m);for(i=0i<n;i++)scanf(“%d”,&stack1[i]);top1=_____(1)______;top2=_______(2)____;for(j=0j<m;j++){scanf(“%d”,&i);while(i<top1-1){top1- -;(3) ;top2++;}while(i>top1-1){top2- -;(4) ;top1++;}clearstack();printf(“%d\n”,stack1[ (5) ]);}return 0;}2.(最大矩阵和)给出M行N列的整数矩阵,就最大的子矩阵和(子矩阵不能为空)。
输入第一行包含两个整数M和N,即矩阵的行数和列数。