noip2017提高组试题(day1+day2)-Word版

noip2017提高组试题(day1+day2)-Word版
noip2017提高组试题(day1+day2)-Word版

全国信息学奥林匹克联赛(2017)复赛

提高组 1

(请选手务必仔细阅读本页内容)

一.题目概况

注意事项:

1、文件名(程序名和输入输出文件名)必须使用英文小写。

2、中函数 ()的返回值类型必须是,程序正常结束时的返回值必须是 0。

3、全国统一评测时采用的机器配置为: () x2 240 ,2.8,

内存 4G,上述时限以此配置为准。

4、只提供格式附加样例文件。

5、提交的程序代码文件的放置位置请参照各省的具体要求。

6、特别提醒:评测在当前最新公布的下进行,各语言的编译器版本以其为准。

【问题描述】1.小凯的疑惑

()

小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。

【输入格式】

输入文件名为。

输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。

【输出格式】

输出文件名为。

输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。

【输入输出样例 1】

见选手目录下的 1 和 1。

【输入输出样例 1 说明】

小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、

2、4、5、8、11 的物品,其中最贵的物品价值为 11,比 11 贵的物品都能买到,比如:

12 = 3 * 4 + 7 * 0

13 = 3 * 2 + 7 * 1

14 = 3 * 0 + 7 * 2

15 = 3 * 5 + 7 * 0

……

【输入输出样例 2】

见选手目录下的 2 和 2。

【数据规模与约定】

对于 30%的数据: 1 ≤ a,b ≤ 50。

对于 60%的数据: 1 ≤ a,b ≤ 10,000。

对于 100%的数据:1 ≤ a,b ≤ 1,000,000,000。

【问题描述】

2.时间复杂度

()

小明正在学习一种新的编程语言 ,刚学会循环语句的他激动地写了好多程序并给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序来判断小明对他的每个程序给出的时间复杂度是否正确。

语言的循环结构如下:

其中“F i x y ”表示新建变量 (i 变量 i 不可与未被销毁的变量重名)并初始化为 x ,

然后判断 i 和 y 的大小关系,若 i 小于等于 y 则进入循环,否则不进入。每次循环结束后 i 都会被修改成 i +1,一旦 i 大于 y 终止循环。

x 和 y 可以是正整数(x 和 y 的大小关系不定)或变量 n 。n 是一个表示数据规模的变量,在时间复杂度计算中需保留该变量而不能将其视为常数,该数远大于 100。

“E”表示循环体结束。循环体结束时,这个循环体新建的变量也被销毁。

注:本题中为了书写方便,在描述复杂度时,使用大写英文字母“O”表示通常意义下“Θ”的概念。

【输入格式】

输入文件名为 。

输入文件第一行一个正整数 t ,表示有 t (t ≤ 10)个程序需要计算时间复杂度。每个程序我们只需抽取其中 “F i x y ”和“E”即可计算时间复杂度。注意:循环结构允许嵌套。

接下来每个程序的第一行包含一个正整数 L 和一个字符串,L 代表程序行数,字符串表示这个程序的复杂度,“O(1)”表示常数

F i x y 循环体 E

复杂度,“O(n^w)”表示复杂度为,其中w 是一个小于100 的

正整数(输入中不包含引号),输入保证复杂度只有O(1)和O(n^w) 两种类型。

接下来 L 行代表程序中循环结构中的“F i x y”或者

“E”。

程序行若以“F”开头,表示进入一个循环,之后有空格分离的三个字符(串)i x y,其中 i 是一个小写字母(保证不为“n”),表示新建的变量名,x 和 y 可能是正整数或 n ,已知若为正整数则一定小于 100。

程序行若以“E”开头,则表示循环体结束。

【输出格式】

输出文件名为。

输出文件共 t 行,对应输入的 t 个程序,每行输出“”或“”或者“”(输出中不包含引号),若程序实际复杂度与输入给出的复杂度一致则输出“”,不一致则输出“”,若程序有语法错误(其中语法错误只有: ① F 和 E 不匹配②新建的变量与已经存在但未被销毁的变量重复两种情况),则输出“”。

注意:即使在程序不会执行的循环体中出现了语法错误也会编译错误,要输出“”。

【输入输出样例 1】

见选手目录下的

1 和 1。

【输入输出样例 1 说明】

第一个程序 i 从 1 到 1 是常数复杂度。

第二个程序 x 从 1 到 n 是 n 的一次方的复杂度。

第三个程序有一个 F 开启循环却没有 E

结束,语法错误。第四个程序二重循环,n

的平方的复杂度。

第五个程序两个一重循环,n 的一次方的复杂度。

第六个程序第一重循环正常,但第二重循环开始即终止(因为n

远大于100,100 大于4)。第七个程序第一重循环无法进入,故

为常数复杂度。

第八个程序第二重循环中的变量 x 与第一重循环中的变量重复,出现语法错误②,输出

【输入输出样

例 2】见选

手目录下的

2 和 2。

【数据规模与约定】

对于 30%的数据:不存在语法错误,数据保证小明给出的每个程序的前 2 行一定为以 F 开头的语句,第 2+1 行至第 L 行一定为以 E 开头的语句,L<=10,若 x、y 均为整数,x 一定小于y,且只有 y 有可能为 n。

对于 50%的数据:不存在语法错误,L<=100,且若 x、y 均为整数,x 一定小于 y,且只有 y 有可能为 n。

对于 70%的数据:不存在语法错误,

L<=100。对于 100%的数据:

L<=100。

【问题描述】

3. 逛公园()

策策同学特别喜欢逛公园。公园可以看成一张i点Μ边

构成的有向图,且没有自环和重边。其中1号点是公园的入口,

1点是公园的出口,每条边有一个非负权值,代表策策经过

这条边所要花的时间。

策策每天都会去逛公园,他总是从1号点进去,从1点出来。

策策喜欢新鲜的事物,他不希望有两天逛公园的路线完全一样,同时策策还是一个特别热爱学习的好孩子,他不希望每天在

逛公园这件事上花费太多的时间。如果1号点到1点的最短路

长为ρ那么策策只会喜欢长度不超过 + U路线。

策策同学想知道总共有多少条满足条件的路线,

你能帮帮他吗?为避免输出过大,答案对8

模。

如果有无穷多条合法的路线,请输出?1。

【输入格式】

输入文件名为。

第一行包含一个整数, 代

表数据组数。接下来γ数

据,对于每组数据:

第一行包含四个整数, , , ρ每两个整数之间用一

个空格隔开。

接下来Y,每行三个整数, , ,代表编号为

, 的点之间有一条权值为的有向边,每两个整数

之间用一个空格隔开。

【输出格式】

输出文件名为。

输出文件包含Y,每行一个整数代表答案。

【输入输出样例 1】

见选手目录下的 1 和 1。对于第一组数据,

最短路为 3。

1 – 5, 1 –

2 – 4 – 5, 1 – 2 –

3 – 5 为 3 条合法路径。

【输入输出样例 2】

见选手目录下的 2 和 2。

【数据规模与约定】

对于不同的测试点,我们约定各种参数的规模不会超过如下

对于 100%的数据, 1 ≤ ≤ 109,1 ≤ , ≤ ,

0 ≤ ≤ 1000。

数据保证:至少存在一条合法的路线。

全国信息学奥林匹克联赛(2017)复赛

提高组 2

(请选手务必仔细阅读本页内容)

一.题目概况

注意事项:

1、文件名(程序名和输入输出文件名)必须使用英文小写。

2、中函数 ()的返回值类型必须是,程序正常结束时的返回值必须是 0。

3、全国统一评测时采用的机器配置为: () x2 240 ,2.8,

内存 4G,上述时限以此配置为准。

4、只提供格式附加样例文件。

5、提交的程序代码文件的放置位置请参照各省的具体要求。

6、特别提醒:评测在当前最新公布的下进行,各语言的编译器版本以其为准。

【问题描述】1.奶酪

()

现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在

这块奶酪中建立空间坐标系,在坐标系中,奶酪的下表面为z = 0,奶酪的上表面为z = h。

现在,奶酪的下表面有一只小老鼠,它知道奶酪中所有空

洞的球心所在的坐标。如果两个空洞相切或是相交,则可以从

其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表

面相切或是相交,则可以从奶酪下表面跑进空洞;如果一个空

洞与上表面相切或是相交,则可以从空洞跑到奶酪上表面。

位于奶酪下表面的想知道,在不破坏奶酪的情况下,能否

利用已有的空洞跑到奶酪的上表面去?

空间内两点1(1, 1, 1)、2(2, 2, 2)的距离公式如下:

(1, 2) = √( 1 ?2)2 + ( 1 ?2)2 +

( 1 ?2)2

【输入格式】

输入文件名为。每个

输入文件包含多组数

据。

输入文件的第一行,包含一个正整数 T,代表该输入文件

中所含的数据组数。接下来是 T 组数据,每组数据的格

式如下:

第一行包含三个正整数 n,h 和 r,两个数之间以一个空格分开,分别代表奶酪中空洞的数量,奶酪的高度和空洞的半径。

接下来的 n 行,每行包含三个整数 x、y、z,两个数之间以

一个空格分开,表示空洞球心坐标为(, , )。

【输出格式】

输出文件名为。

输出文件包含 T 行,分别对应 T 组数据的答案,如果在第 i 组数据中,能从下表面跑到上表面,则输出“”,如果不能,则输出“”(均不包含引号)。

【输入输出样例 1】

见选手目录下的 1 和 1。

【输入输出样例 1 说明】

第一组数据,由奶酪的剖面

图可见:第一个空洞在

(0,0,0)与下表面相切

第二个空洞在(0,0,4)

与上表面相切两个空洞在

(0,0,2)相切

输出

第二组数据,由奶酪的剖

面图可见:两个空洞既

不相交也不相切

输出

第三组数据,由奶酪的剖

面图可见:两个空洞相

且与上下表面相

切或相交输出

【输入输出样例 2】

见选手目录下的 2 和 2。

【数据规模与约定】

对于 20%的数据,n = 1,1 ≤ h , r ≤ 10,000,坐标的绝对值不超过 10,000。

对于 40%的数据,1 ≤ n ≤ 8, 1 ≤ h , r ≤ 10,000,坐标的绝对值不超过 10,000。对于 80%的数据,1 ≤ n ≤ 1,000,1 ≤h , r ≤ 10,000,坐标的绝对值不超过10,000。对于 100%的数据,1 ≤ n≤ 1,000,1 ≤ h , r

≤ 1,000,000,000,T ≤ 20,坐标的绝对值不超过 1,000,000,000。

【问题描述】

2. 宝藏()

参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋,也给出了这 n 个宝藏屋之间可供开发的

m 条道路和它们的长度。

小明决心亲自前往挖掘所有宝藏屋中的宝藏。但是,每个宝藏屋距离地面都很远,也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路则相对容易很多。

小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助

他打通一条从地面到某个宝藏屋的通道,通往哪个宝藏屋则由

小明来决定。

在此基础上,小明还需要考虑如何开凿宝藏屋之间的道路。已经开凿出的道路可以任意通行不消耗代价。每开凿出一条新道路,小明就会与考古队一起挖掘出由该条道路所能到达的宝藏屋的宝藏。另外,小明不想开发无用道路,即两个已经被挖掘过的宝藏屋之间的道路无需再开发。

新开发一条道路的代价是:

这条道路的长度× 从赞助商帮你打通的宝藏屋到这条道路

起点的宝藏屋所经过的宝藏屋的数量(包括赞助商帮你打通的

宝藏屋和这条道路起点的宝藏屋)。

请你编写程序为小明选定由赞助商打通的宝藏屋和之后开凿

的道路,使得工程总代价最小,并输出这个最小值。

【输入格式】

输入文件名为。

第一行两个用空格分离的正整数 n 和 m,代表宝藏屋的个数和道路数。

接下来 m 行,每行三个用空格分离的正整数,分别是由一条道路连接的两个宝藏屋的编号(编号为1),和这条道路的长度v。

【输出格式】

输出文件名为。

输出共一行,一个正整数,表示最小的总代价。【输入输出样例 1】

见选手目录下的 1 与 1

【输入输出样例 1 说明】

NOIP2017全国青少年信息学奥林匹克联赛提高组初赛试题卷答案解析

NOIP 2017全国青少年信息学奥林匹克联赛提高组初赛试题答案 一、单项选择题(共 15 题,每题 1.5 分,共计 22.5 分;每题有且仅有一个正确选项) 1. 从( )年开始,NOIP 竞赛将不再支持 Pascal 语言。 A. 2020 B. 2021 C. 2022 D. 2023 2.在 8 位二进制补码中,10101011 表示的数是十进制下的( )。 A. 43 B. -85 C. -43 D.-84 3.分辨率为 1600x900、16 位色的位图,存储图像信息所需的空间为( )。 A. 2812.5KB B. 4218.75KB C. 4320KB D. 2880KB 4. 2017年10月1日是星期日,1949年10月1日是( )。 A. 星期三 B. 星期日 C. 星期六 D. 星期二 5. 设 G 是有 n 个结点、m 条边(n ≤m)的连通图,必须删去 G 的( )条边,才能使得 G 变成一棵树。 A.m–n+1 B. m-n C. m+n+1 D.n–m+1 6. 若某算法的计算时间表示为递推关系式: T(N)=2T(N/2)+NlogN T(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+*d D. b+c*a*d 8. 由四个不同的点构成的简单无向连通图的个数是( )。

A. 32 B. 35 C. 38 D. 41 9. 将7个名额分给4个不同的班级,允许有的班级没有名额,有( )种不同的分配方案。 A. 60 B. 84 C. 96 D.120 10. 若f[0]=0, f[1]=1, f[n+1]=(f[n]+f[n-1])/2,则随着i的增大,f[i]将接近与( )。 A. 1/2 B. 2/3 D. 1 11. 设A和B是两个长为n的有序数组,现在需要将A和B合并成一个排好序的数组,请问任何以元素比较作为基本运算的归并算法最坏情况下至少要做( )次比较。 A. n2 B. nlogn C. 2n D.2n-1 12. 在n(n>=3)枚硬币中有一枚质量不合格的硬币(质量过轻或质量过重),如果只有一架天平可以用来称重且称重的硬币数没有限制,下面是找出这枚不合格的硬币的算法。请把 a-c三行代码补全到算法中。 a. A XUY b. A Z c. n |A| 算法Coin(A,n) 1. k n/3 2. 将A中硬币分成X,Y,Z三个集合,使得|X|=|Y|=k, |Z|=n-2k 3. if W(X)≠W(Y) //W(X), W(Y)分别为X或Y的重量 4. then_______ 5. else_______ 6. __________ 7. if n>2 then goto 1 8. if n=2 then 任取A中1枚硬币与拿走硬币比较,若不等,则它不合格;若相等,则A 中剩下的硬币不合格 9. if n=1 then A中硬币不合格 正确的填空顺序是( )。 A. b,c,a B. c,b,a C. c,a,b D.a,b,c 13. 在正实数构成的数字三角形排列形式如图所示,第一行的数为a11;第二行的数从左到右依次为a21,a22;…第n行的数为an1,an2,…,ann。从a11开始,每一行的数aij只有两条边可以分别通向下一行的两个数a(i+1)j和a(i+1)(j+1)。用动态规划算法找出一条从a11向下通到an1,an2,…,ann中某个数的路径,使得该路径上的数之和达到最大。

noip2017提高组复赛解题报告

noip2017提高组复赛解题报告 定期推送帐号信息学新闻,竞赛自主招生,信息学专业知识,信息学疑难解答,融科教育信息学竞赛培训等诸多优质内容的微信平台,欢迎分享文章给你的朋友或者朋友圈!以下解题思路及代码未经官方评测,仅供参考,复赛成绩以官方(CCF)评测结果为准。 Day1 1.小凯的疑惑(math.cpp/c/pas)【问题描述】小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。【输入格式】输入文件名为math.in。输入数据仅一行,包含两个正整数a 和b,它们之间用一个空格隔开,表示小凯手中金币的面值。【输出格式】输出文件名为math.out。输出文件仅一行,一个正整数N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。【输入输出样例1】math.in3 7 math.out11【数据规模与约定】对于30%的数据: 1 ≤a,b ≤50。对于60%的数据: 1 ≤a,b ≤10,000。对于100%的数据:1 ≤a,b ≤1,000,000,000。数学太差只找规律吧。

设:其中一个数为2则:2、3=>1;2、5=>3;2、7=>5;2、11=>9得:2、n=>n-2设:其中一个数为3则:3、5=>7;3、7=>11;3、11=>19;3、13=>23得:3、n=>2n-3设:其中一个数为5则:5、7=>23;5、11=>39;5、13=>47;5、17=>63得:5、n=>4n-5所以:m、n=>(m-1)n-m #includeusing namespace std;int main(){ long long a,m,n; scanf('%lld %lld',&m,&n); a=(m-1)*n-m; printf('%lld',a); return 0;} 2.时间复杂度(complexity.cpp/c/pas)【问题描述】小明正在学习一种新的编程语言A++,刚学会循环语句的他激动地写了好多程序并给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序,于是你的机会来啦!下面请你编写程序来判断小明对他的每个程序给出的时间复杂度是否正确。A++语言的循环结构如下:其中“F i x y”表示新建变量(i 变量i 不可与未被销毁的变量重名)并初始化为x,然后判断i 和y 的大小关系,若i 小于等于y 则进入循环,否则不进入。每次循环结束后i都会被修改成i +1,一旦i 大于y 终止循环。x和y 可以是正整数(x 和y 的大小关系不定)或变量n。n 是一个表示数据规模的变量,在时间复杂度计算中需保留该变量而不能将其视为常数,该数远大于100。“E”表示循环体结束。循环体结束时,这个循环体新建的变量也被销毁。注:本题中为了书写方便,在描述复杂度时,使用大

noip2017提高组试题

CCF 全国信息学奥林匹克联赛(NOIP2017)复赛 提高组 day1 (请选手务必仔细阅读本页内容) 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。 3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,2.8GHz, 内存4G,上述时限以此配置为准。 4、只提供Linux 格式附加样例文件。 5、提交的程序代码文件的放置位置请参照各省的具体要求。 6、特别提醒:评测在当前最新公布的NOI Linux 下进行,各语言的编译器版本以其为准。

【问题描述】1.小凯的疑惑 (math.cpp/c/pas) 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。 【输入格式】 输入文件名为math.in。 输入数据仅一行,包含两个正整数a 和b,它们之间用一个空格隔开,表示小凯手中金币的面值。 【输出格式】 输出文件名为math.out。 输出文件仅一行,一个正整数N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。 见选手目录下的math/math1.in 和math/math1.ans。 【输入输出样例1 说明】 小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、2、4、5、8、11 的物品,其中最贵的物品价值为11,比11 贵的物品都能买到,比如: 12 = 3 * 4 + 7 * 0 13 = 3 * 2 + 7 * 1 14 = 3 * 0 + 7 * 2 15 = 3 * 5 + 7 * 0 …… 【输入输出样例2】 见选手目录下的math/math2.in 和math/math2.ans。 【数据规模与约定】 对于30%的数据: 1 ≤ a,b ≤ 50。 对于60%的数据: 1 ≤ a,b ≤ 10,000。 对于100%的数据:1 ≤ a,b ≤ 1,000,000,000。

NOIP2017提高组初赛试题及答案

NOIP2017提高组初赛试题及答案 一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项) 1. 从( )年开始,NOIP 竞赛将不再支持Pascal 语言。C A. 2020 B. 2021 C. 2022 D. 2023 2.在8 位二进制补码中,10101011 表示的数是十进制下的( )。B A. 43 B. -85 C. -43 D.-84 3.分辨率为1600x900、16 位色的位图,存储图像信息所需的空间为( )。A A. 2812.5KB B. 4218.75KB C. 4320KB D. 2880KB 4. 2017年10月1日是星期日,1949年10月1日是( )。C A. 星期三 B. 星期日 C. 星期六 D. 星期二 5. 设G 是有n 个结点、m 条边(n ≤m)的连通图,必须删去G 的( )条边,才能使得G 变成一棵树。A A.m–n+1 B. m-n C. m+n+1 D.n–m+1 6. 若某算法的计算时间表示为递推关系式:T(N)=2T(N/2)+NlogN T(1)=1 则该算法的时间复杂度为( )。C A.O(N) B.O(NlogN) C.O(N log2N) D.O(N2) 7. 表达式a * (b + c) * d的后缀形式是()。B A. abcd*+* B. abc+*d* C. a*bc+*d D. b+c*a*d 8. 由四个不同的点构成的简单无向连通图的个数是( )。C A. 32 B. 35 C. 38D. 41 9. 将7个名额分给4个不同的班级,允许有的班级没有名额,有( )种不同的分配方案。D A. 60 B. 84 C. 96 D.120 10. 若f[0]=0, f[1]=1, f[n+1]=(f[n]+f[n-1])/2,则随着i的增大,f[i]将接近与( )。B A. 1/2 B. 2/3 D. 1 11. 设A和B是两个长为n的有序数组,现在需要将A和B合并成一个排好序的数组,请问任何以元素比较作为基本运算的归并算法最坏情况下至少要做( )次比较。D A. n2 B. Nlogn C. 2n D.2n-1 12. 在n(n>=3)枚硬币中有一枚质量不合格的硬币(质量过轻或质量过重),如果只有一架天平可以用来称重且称重的硬币数没有限制,下面是找出这枚不合格的硬币的算法。请把a-c三行代码补全到算法中。 2. 将A中硬币分成X,Y,Z三个集合,使得|X|=|Y|=k, |Z|=n-2k 3. if W(X)≠W(Y) //W(X), W(Y)分别为X或Y的重量 4. then_______ 5. else_______ 6. __________ 7. if n>2 then goto 1 8. if n=2 then 任取A中1枚硬币与拿走硬币比较,若不等,则它不合格;若相等,则A中剩下的硬币不合格 9. if n=1 then A中硬币不合格 正确的填空顺序是( )。D A. b,c,a B. c,b,a C. c,a,b D.a,b,c 13. 在正实数构成的数字三角形排列形式如图所示,第一行的数为a11;第二行的数从左到右依次为a21,a22;…第n行的数为 an1,an2,…,ann。从a11开始,每一行的数aij只有两条边可以分别通向下一行的两个数a(i+1)j和a(i+1)(j+1)。用动态规划算法找出一条从a11向下通到an1,an2,…,ann中某个数的路径,使得该路径上的数之和达到最大。 令C[i,j]是从a11到aij的路径上的数的最大和,并且C[i,0]=C[0,j]=0,则C[i,j]=( )。A A. max{C[i-1,j-1],C[i-1,j]}+aij B. C[i-1,j-1]+c[i-1,j] C. max{C[i-1,j-1],C[i-1,j]}+1 D. max{C[i,j-1],C[i-1,j]}+aij 14. 小明要去南美洲旅游,一共乘坐三趟航班才能到达目的地,其中第1个航班准点的概率是0.9,第2个航班准点的概率为0.8,第3个航班准点的概率为0.9。如果存在第i个(i=1,2)航班晚点,第i+1个航班准点,则小明将赶不上第i+1个航班,旅行失败;除了这种情况,其他情况下旅行都能成功。请问小明此次旅行成功的概率是( )。D

noip2017提高组试题(day1+day2)-Word版

全国信息学奥林匹克联赛(2017)复赛 提高组 1 (请选手务必仔细阅读本页内容) 一.题目概况 注意事项: 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、中函数 ()的返回值类型必须是,程序正常结束时的返回值必须是 0。 3、全国统一评测时采用的机器配置为: () x2 240 ,2.8, 内存 4G,上述时限以此配置为准。 4、只提供格式附加样例文件。 5、提交的程序代码文件的放置位置请参照各省的具体要求。

6、特别提醒:评测在当前最新公布的下进行,各语言的编译器版本以其为准。

【问题描述】1.小凯的疑惑 () 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。 【输入格式】 输入文件名为。 输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。 【输出格式】 输出文件名为。 输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。 【输入输出样例 1】 见选手目录下的 1 和 1。 【输入输出样例 1 说明】 小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、 2、4、5、8、11 的物品,其中最贵的物品价值为 11,比 11 贵的物品都能买到,比如: 12 = 3 * 4 + 7 * 0 13 = 3 * 2 + 7 * 1 14 = 3 * 0 + 7 * 2

NOIP2017_提高组复赛试题day2

CCF全国信息学奥林匹克联赛(NOIP2017)复赛 提高组 day2 (请选手务必仔细阅读本页内容) 注意事项: 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。 3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,2.8GHz, 内存4G,上述时限以此配置为准。 4、只提供Linux格式附加样例文件。 5、提交的程序代码文件的放置位置请参照各省的具体要求。 6、特别提醒:评测在当前最新公布的NOI Linux下进行,各语言的编译器版本以其为准。

1.奶酪 (cheese.cpp/c/pas) 【问题描述】 现有一块大奶酪,它的高度为h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中,奶酪的下表面为z=0,奶酪的上表面为z=h。 现在,奶酪的下表面有一只小老鼠Jerry,它知道奶酪中所有空洞的球心所在的坐标。如果两个空洞相切或是相交,则Jerry可以从其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表面相切或是相交,Jerry则可以从奶酪下表面跑进空洞;如果一个空洞与上表面相切或是相交,Jerry则可以从空洞跑到奶酪上表面。 位于奶酪下表面的Jerry想知道,在不破坏奶酪的情况下,能否利用已有的空洞跑到奶酪的上表面去? 空间内两点P1(x1,y1,z1)、P2(x2,y2,z2)的距离公式如下: dist(P1,P2)=√(x1?x2)+(y1?y2)+(z1?z2) 【输入格式】 输入文件名为cheese.in。 每个输入文件包含多组数据。 输入文件的第一行,包含一个正整数T,代表该输入文件中所含的数据组数。 接下来是T组数据,每组数据的格式如下: 第一行包含三个正整数n,h和r,两个数之间以一个空格分开,分别代表奶酪中空洞的数量,奶酪的高度和空洞的半径。 接下来的n行,每行包含三个整数x、y、z,两个数之间以一个空格分开,表示空洞球心坐标为(x,y,z)。 【输出格式】 输出文件名为cheese.out。 输出文件包含T行,分别对应T组数据的答案,如果在第i组数据中,Jerry能从下表面跑到上表面,则输出“Yes”,如果不能,则输出“No”(均不包含引号)。

NOIP2017普及组初赛试题及答案

NOIP2017普及组初赛试题及答案 文字标黑部分为试题答案。 一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项) 1.在8位二进制补码中,10101011表示的数是十进制下的( )。 A. 43 B. -85 C. -43 D. -84 2.计算机存储数据的基本单位是( )。 A. bit B. Byte C. GB D. KB 3.下列协议中与电子邮件无关的是( )。 A. POP3 B. SMTP C. WTO D. IMAP 4.分辨率为800x600、16位色的位图,存储图像信息所需的空间为( )。 A.937.5KB B. 4218.75KB C.4320KB D. 2880KB 5.计算机应用的最早领域是( )。 A.数值计算 B.人工智能 C.机器人 D.过程控制 6.下列不属于面向对象程序设计语言的是( )。 页脚内容1

A. C B. C++ C. Java D. C# 7.NOI的中文意思是( )。 A.中国信息学联赛 B.全国青少年信息学奥林匹克竞赛 C.中国青少年信息学奥林匹克竞赛 D.中国计算机协会 8. 2017年10月1日是星期日,1999年10月1日是( )。 A.星期三 B.星期日 C.星期五 D.星期二 9.甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,乙、丙各选修3门,则不同的选修方案共有( )种。 A. 36 B. 48 C. 96 D. 192 10.设G是有n个结点、m条边(n ≤m)的连通图,必须删去G的( )条边,才能使得G变成一棵树。 A.m–n+1 B. m-n C. m+n+1 D.n–m+1 11.对于给定的序列{ak},我们把(i, j)称为逆序对当且仅当i < j且ai> aj。那么 序列1, 7, 2, 3, 5, 4的逆序对数为()个。 页脚内容2

NOIP2018提高组复赛试题day2

CCF全国信息学奥林匹克联赛(NOIP2018)复赛 提高组 day2 (请选手务必仔细阅读本页内容) 注意事项: 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。 3、全国统一评测时采用的机器配置为:Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz,内存 32GB。上述时限以此配置为准。 4、只提供Linux格式附加样例文件。 5、特别提醒:评测在当前最新公布的NOI Linux下进行,各语言的编译器版本以其为准。

1.旅行 (travel.cpp/c/pas) 【问题描述】 小Y是一个爱好旅行的OIer。她来到X国,打算将各个城市都玩一遍。 小Y了解到,X国的 n 个城市之间有 m 条双向道路。每条双向道路连接两个城市。不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路。并且,从任意一个城市出发,通过这些道路都可以到达任意一个其他城市。小Y只能通过这些道路从一个城市前往另一个城市。 小Y的旅行方案是这样的:任意选定一个城市作为起点,然后从起点开始,每次可以选择一条与当前城市相连的道路,走向一个没有去过的城市,或者沿着第一次访问该城市时经过的道路后退到上一个城市。当小Y回到起点时,她可以选择结束这次旅行或继续旅行。需要注意的是,小Y要求在旅行方案中,每个城市都被访问到。 为了让自己的旅行更有意义,小Y决定在每到达一个新的城市(包括起点)时,将它的编号记录下来。她知道这样会形成一个长度为 n 的序列。她希望这个序列的字典序最小,你能帮帮她吗? 对于两个长度均为 n 的序列A和B,当且仅当存在一个正整数x,满足以下条件时,我们说序列A的字典序小于B。 ?对于任意正整数1≤i

NOIP2015提高组C++试题

第二十一届全国青少年信息学奥林匹克联赛初赛 提高组C++语言试题 竞赛时间:2015 年10 月11 日14:30~16:30 选手注意: ●试题纸共有9页,答题纸共有2页,满分100 分。请在答题纸上作答,写在试题纸上的 一律无效。 ●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项) 1. 在计算机内部用来传送、存贮、加工处理的数据或指令都是以()形式进行的。 A. 二进制码 B. 八进制码 C. 十进制码 D. 智能拼音码 2. 下列说法正确的是()。 A. CPU 的主要任务是执行数据运算和程序控制 B. 存储器具有记忆能力,其中信息任何时候都不会丢失 C. 两个显示器屏幕尺寸相同,则它们的分辨率必定相同 D. 个人用户只能使用W ifi 的方式连接到I nternet 3. 与二进制小数0.1 相等的十六进制数是()。 A. 0.8 B. 0.4 C. 0.2 D. 0.1 4. 下面有四个数据组,每个组各有三个数据,其中第一个数据为八进制数,第二个数据为 十进制数,第三个数据为十六进制数。这四个数据组中三个数据相同的是()。A. 120 82 50 B. 144 100 68 C. 300 200 C8 D. 1762 1010 3F2 5. 线性表若采用链表存储结构,要求内存中可用存储单元地址()。 A. 必须连续 B. 部分地址必须连续 C. 一定不连续 D. 连续不连续均可 6. 今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f 依次进行进栈,进栈,出栈, 进栈,进栈,出栈的操作,则此操作完成后,栈S的栈顶元素为()。 A. f B. c C. a D. b

提高组试题

NOIP提高组模拟试题2017.07 BY XYX

小X的质数(prime) 【题目背景】 小X是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感。小X认为,质数是一切自然数起源的地方。 【题目描述】 在小X的认知里,质数是除了本身和1以外,没有其他因数的数字。 但由于小X对质数的热爱超乎寻常,所以小X同样喜欢那些虽然不是质数,但却是由两个质数相乘得来的数。 于是,我们定义,一个数是小X喜欢的数,当且仅当其是一个质数,或是两个质数的乘积。 而现在,小X想要知道,在L到R之间,有多少数是他喜欢的数呢? 【输入格式】 从文件prime.in中读取数据。 第一行输入一个正整数Q,表示询问的组数。 接下来Q行,包含两个正整数L和R,保证L≤R。 【输出格式】 输出Q行,每行一个整数,表示小X喜欢的数的个数。 【样例1输入】 1 1 6 【样例1输出】 5 【样例1解释】 6以内的质数有2、3、5,而4 = 2 * 2,6 = 2 * 3,因此,2,3,4,5,6都是小X喜欢的数,而1不是。 【样例2】 见下发文件prime2.in,prime2.ans 【样例3】 见下发文件prime3.in,prime3.ans

小X的密室(room) 【题目背景】 小X正困在一个密室里,他希望尽快逃出密室。 【题目描述】 密室中有N个房间,初始时,小X在1号房间,而出口在N号房间。 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会单向地创造一条从房间X到房间Y的通道。另外,想要通过某个传送门,就必须具备一些种类的钥匙。幸运的是,钥匙在打开传送门的封印后,并不会消失。 然而,通过密室的传送门需要耗费大量的时间,因此,小X希望通过尽可能少的传送门到达出口,你能告诉小X这个数值吗? 另外,小X有可能不能逃出这个密室,如果是这样,请输出“No Solution”。【输入格式】 从文件room.in中读取数据。 第一行三个整数N、M、K,分别表示房间的数量、传送门的数量以及钥匙的种类数。 接下来N行,每行K个0或1,若第i个数为1,则表示该房间内有第i种钥匙,若第i个数为0,则表示该房间内没有第i种钥匙。 接下来M行,每行先读入两个整数X,Y,表示该传送门是建立在X号房间,通向Y号房间的,再读入K个0或1,若第i个数为1,则表示通过该传送门需要i种钥匙,若第i个数为0,则表示通过该传送门不需要第i种钥匙。 【输出格式】 输出一行一个“No Solution”,或一个整数,表示最少通过的传送门数。【样例1输入】 3 3 2 1 0 0 1 0 0 1 3 1 1 1 2 1 0 2 3 1 1 【样例1输出】 2 【样例2】 见下发文件room2.in, room2.ans 【样例3】 见下发文件room3.in, room3.ans 【样例4】 见下发文件room4.in, room4.ans

NOIP2017提高组C++试题

福建 福建第二十三届全国青少年信息学奥林匹克联赛初赛 提高组C++语言试题 竞赛时间:2017年10月14日14:30~16:30 选手注意: ● 试题纸共有10页,答题纸共有2页,满分100分。请在答题纸上作答,写在试题纸上的一律无效。 ● 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项) 1. 从( )年开始,NOIP 竞赛将不再支持Pascal 语言。 A. 2020 B. 2021 C. 2022 D. 2023 2. 在8位二进制补码中,10101011表示的数是十进制下的( )。 A. 43 B. -85 C. -43 D. -84 3. 分辨率为1600x900、16位色的位图,存储图像信息所需的空间为( )。 A. 2812.5KB B. 4218.75KB C. 4320KB D. 2880KB 4. 2017年10月1日是星期日,1949年10月1日是( )。 A. 星期三 B. 星期日 C. 星期六 D. 星期二 5. 设G 是有n 个结点、m 条边(n ≤ m )的连通图,必须删去G 的( )条边,才能使得G 变成一棵树。 A. m – n + 1 B. m - n C. m + n + 1 D. n – m + 1 6. 若某算法的计算时间表示为递推关系式: T(N) = 2T(N / 2) + N log N T(1) = 1 则该算法的时间复杂度为( )。 A. O(N) B. O(N log N) C. O(N log 2 N) D. O(N 2) 7. 表达式a * (b + c) * d 的后缀形式是( )。 A. a b c d * + * B. a b c + * d * C. a * b c + * d D. b + c * a * d 8. 由四个不同的点构成的简单无向连通图的个数是( )。 A. 32 B. 35 C. 38 D. 41

NOIP2013提高组复赛试题

CCF 全国信息学奥林匹克联赛(NOIP2013) 复赛 提高组 day1 1.转圈游戏 (circle.cpp/c/pas) 【问题描述】 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从 0 到 n-1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。 游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n ?m号位置上的小伙伴走到第 0 号位置,第n-m+1 号位置上的小伙伴走到第 1 号位置,……,第 n-1 号位置上的小伙伴顺时针走到第m-1 号位置。 现在,一共进行了10^k 轮,请问x 号小伙伴最后走到了第几号位置。 【输入】 输入文件名为circle.in。 输入共1 行,包含4 个整数n、m、k、x,每两个整数之间用一个空格隔开。 【输出】 输出文件名为c ircle.out。 输出共1行,包含1个整数,表示10k 轮后x号小伙伴所在的位置编号。 【数据说明】 对于30%的数据,0 < k < 7; 对于80%的数据,0 < k < 107; 对于100%的数据,1 < n< 1,000,000,0

2.火柴排队 (match.cpp/c/pas) 【问题描述】 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai 表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。 每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 99,999,997 取模的结果。 【输入】 输入文件为m atch.in。 共三行,第一行包含一个整数n,表示每盒中火柴的数目。 第二行有n个整数,每两个整数之间用一个空格隔开,表示第一列火柴的高度。 第三行有n个整数,每两个整数之间用一个空格隔开,表示第二列火柴的高度。 【输出】 输出文件为m atch.out。 输出共一行,包含一个整数,表示最少交换次数对99,999,997 取模的结果。 【输入输出样例1 【输入输出样例说明】 最小距离是0,最少需要交换1次,比如:交换第1列的前2根火柴或者交换第2列的前2根火柴。 【输入输出样例说明】 最小距离是10,最少需要交换2 次,比如:交换第1 列的中间2 根火柴的位置,再交换第2 列中后2 根火柴的位置。 【数据范围】 对于10%的数据,1 ≤ n ≤ 10; 对于30%的数据,1 ≤ n ≤ 100; 对于60%的数据,1 ≤ n ≤ 1,000;

相关文档
最新文档