NOIP2012提高组day1
NOIP2012山东提高组成绩
5 40 0 70 70 70 65 45 70 65 10 50 55 70 65 50 70 70 0 0 70 60 50 0 5 0 50 35 5 70 5 20 5 0 0 5 0 50 5 5 5 5 5 0 5 5 10 50 25 0 0
50 50 40 20 20 20 10 30 40 60 60 30 30 10 0 40 50 10 60 60 10 20 20 60 20 0 20 60 60 60 60 40 50 60 50 40 50 20 50 60 50 50 40 50 30 60 60 60 20 20 40
SD-231 SD-343 SD-449 SD-450 SD-066 SD-164 SD-413 SD-183 SD-218 SD-235 SD-424 SD-467 SD-514 SD-004 SD-084 SD-095 SD-214 SD-294 SD-369 SD-371 SD-435 SD-112 SD-247 SD-285 SD-338 SD-382 SD-390 SD-131 SD-196 SD-203 SD-510 SD-068 SD-099 SD-246 SD-277 SD-370 SD-451 SD-512 SD-080 SD-263 SD-495 SD-044 SD-054 SD-073 SD-158 SD-213 SD-241 SD-344 SD-070 SD-143 SD-166
drive 70 100 100 70 70 70 65 70 70 95 70 70 70 70 70 65 70 70 50 70 70 95 70 25 5 70 70 70 70 70 70 70 10 70 70 65 70 65 50 65 70 50 45 55 15 65 5 65
noip 2012 提高组 解题报告-推荐下载
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术艺料0不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试2下卷2,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并22工且22作尽22下可22都能22可地护以缩1关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编试要5写、卷求重电保技要气护术设设装交备备置底4高调、动。中试电作管资高气,线料中课并敷3试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
NOIP2012提高组初赛试题与答案
s3[tmpLen+1] = '\0'; if (right[x] >= 0) check(right[x]); } void dfs(int x, int th) { if (th == n) {
s3[0] = '\0'; check(0); if (strcmp(s2, s3) == 0) {
文件交互的一种软件。
A. 资源管理器
B. 浏览器
C. 电子邮件
D. 编译器
3. 目前个人电脑的( )市场占有率最靠前的厂商包括 Intel、AMD 等公司。
A. 显示器
B. CPU
C. 内存
D. 鼠标
4. 无论是 TCP/IP 模型还是 OSI 模型,都可以视为网络的分层模型,每个网络协议都会被
归入某一层中。如果用现实生活中的例子来比喻这些“层”,以下最恰当的是( )。
ans = 0; calc(0, 1); printf("%d\n", ans); } return; } if (left[x] == -1 && right[x] == -1) { left[x] = th; father[th] = x; dfs(th, th+1); father[th] = -1; left[x] = -1; } if (right[x] == -1) { right[x] = th; father[th] = x; dfs(th, th+1); father[th] = -1; right[x] = -1; } if (father[x] >= 0) dfs(father[x], th); } int main() {
noip2012 解析
小结和问题
• 一个函数的三要素是定义域,值域和对应关系, 而通常,我们对值域、定义域的关注较少。这是在 数学和信息学中都要注意的。 考虑到全部可能的情况是模拟题的关键,如果漏 掉某一情况那么很可能这道题你就会爆0。。 细节!模拟的题目基本上都没有多大思考的难度, 但一旦你不注意细节,别人就和你拉开了差距。
Game p1432
• 思路:其实是一个很经典的贪心模型,但是加了恶心的 高精度。 • 可以看到即使交换相邻两个人的位置,前面所有人的左 手积也是不变的。如图*: 我们设n1前的左手积为S,则
求的是max(s/r1,s*l1/r2) ;A式
大臣编号:... n1 n2
交换n1,n2之后,max(s*r2,s*l2/r1);B式 若A<=B,则化简后推出:r1*l1<=r2*l2; 即左右手乘积小的,要放在前面,可保证max 最小
• 这样我们就得到公式m=c-k。 • 但是仅仅这样就完了么?m必须要大于等于0。而 当c<k时的情况可能出现么?
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1 2
0
1 2
1
2 3
2
3 4
3
4 5
4
5 6
5
6 7
6
7 8
7
8 9
8
9 ...
9
...
...
3
4 5 6 7 8
3
4 5 6 7 8
4
•
•
•
考场上实在做不出来就要爆搜或骗分,怎么搜?怎么 骗?提示:P13 的方案B可以试一下。建议学习《骗分 导论》。
noip复习资料(提高组c++版)
NOIP复习资料(C++版)主编葫芦岛市一高中李思洋前言有一天,我整理了NOIP的笔记,并收集了一些经典算法。
不过我感觉到笔记比较凌乱,并且有很多需要修改和补充的内容,于是我又搜集一些资料,包括一些经典习题,在几个月的时间内编写出了《NOIP复习资料》。
由于急于在假期之前打印出来并分发给同校同学(我们学校既没有竞赛班,又没有懂竞赛的老师。
我们大家都是自学党),《NOIP复习资料》有很多的错误,还有一些想收录而未收录的内容。
在“减负”的背景下,暑期放了四十多天的假。
于是我又有机会认真地修订《NOIP复习资料》。
我编写资料的目的有两个:总结我学过(包括没学会)的算法、数据结构等知识;与同学共享NOIP知识,同时使我和大家的RP++。
大家要清醒地认识到,《NOIP复习资料》页数多,是因为程序代码占了很大篇幅。
这里的内容只是信息学的皮毛。
对于我们来说,未来学习的路还很漫长。
基本假设作为自学党,大家应该具有以下知识和能力:①能够熟练地运用C++语言编写程序(或熟练地把C++语言“翻译”成Pascal语言);②能够阅读代码,理解代码含义,并尝试运用;③对各种算法和数据结构有一定了解,熟悉相关的概念;④学习了高中数学的算法、数列、计数原理,对初等数论有一些了解;⑤有较强的自学能力。
代码约定N、M、MAX、INF是事先定义好的常数(不会在代码中再次定义,除非代码是完整的程序)。
N、M、MAX针对数据规模而言,比实际最大数据规模大;INF针对取值而言,是一个非常大,但又与int的最大值有一定差距的数,如100000000。
对于不同程序,数组下标的下限也是不同的,有的程序是0,有的程序是1。
阅读程序时要注意。
阅读顺序和方法没听说过NOIP,或对NOIP不甚了解的同学,应该先阅读附录E,以加强对竞赛的了解。
如果不能顺利通过初赛,你就应该先补习初赛知识。
这本《NOIP复习资料》总结的是复赛知识。
如果没有学过C++语言,应该先选择一本C++语言教材。
2012noip提高组初赛试题
三、问题求解(共 2 题,每题 5 分,共计 10 分) 1. 2. 256 5536
四、阅读程序写结果(共 4 题,每题 8 分,其中第 3 题的 2 个小题各 4 分,共计 32 分) 1. 2. 3. 4. 41 16 (1)7 (2)2004 55 (4 分) (4 分)
五、完善程序(第 1 题第 2 空 3 分,其余每空 2.5 分,共计 28 分)以下各程序填空可能还有一些等价的 写法,各省赛区可请本省专家审定和上机验证,可以不上报 CCF NOI 科学委员会检查。 Pascal 语言 1 ① ② ③ ④ ⑤ 2 ① ② ③ ④ ⑤ ⑥ next := (k mod c) + 1 s[n] := q[tail] q[head] q[head] q[tail] next(head) false used[data[i]] := false used[data[i]] = false j n break return (k % c) + 1 s[n] = q[tail] C++语言 C 语言 0 used[data[i]] = 0
其中,Pascal 语言和 C++语言中的 false 可以用 0 代替;第 2 题第 1 空中的圆括号可以省略。
第十八届全国青少年信息学奥林匹克联赛初赛 提高组参考答案
一、单项选择题(共 10 题,每题 1.5 分,共计 15 分) 1 A 2 B 3 B 4 A 5 D 6 A 7 A 8 D 9 A 10 B
二ቤተ መጻሕፍቲ ባይዱ不定项选择题(共 10 题,每题 1.5 分,共计 15 分,多选或少选均不得分) 1 A 6 CD 2 AD 7 AB 3 AD 8 A 4 BD 9 CD 5 ABC 10 BD
NOIP2012年四川提高组成绩
0 65 70 0 70 0 5 70 0 65 0 0 65 5 65 65 70 5 70 0 0 40 70 0 0 70 0 5 5 25 5 70 0 55 5 15 0 0 5 0 0 5 50 0 5 0 0 0 10 0 5
20 60 60 60 20 0 20 50 10 30 60 20 40 50 20 20 0 40 20 0 60 10 0 50 0 40 0 60 70 0 70 0 70 40 70 10 60 50 60 40 50 10 10 10 10 50 40 40 60 50 0
谢星宇 SC-143 俞快 SC-170 于志竟成 SC-174 李博文 SC-278 李鸿丞 SC-309 颜奕林 SC-313 刘犇 SC-348 刘云浩 SC-041 郭代禹 SC-042 李观之 SC-057 李炊健 SC-209 张源 SC-282 向东伟 SC-026 高旺 SC-052 周子健 SC-319 杨昱天 SC-322 白云仁 SC-009 何相龙 SC-119 胥颖 SC-153 熊芮铭 SC-199 曾启立 SC-221 余洋 SC-229 杨航 SC-289 肖斯宇 SC-330 蔡铭飞 SC-021 杨皓然 SC-094 李东朗 SC-176 黄磊 SC-293 胥世承 SC-321 罗义翀 SC-088 卢俊辰 SC-106 文瀚杰 SC-152 廖景伊 SC-267 杨锐涵 SC-290 李昂 SC-007 匡劢 SC-087 李珂 SC-092 齐聪 SC-103 苏哲宸 SC-112 杜衡 SC-121 余欣健 SC-157 林石磊 SC-171 陈力衍 SC-182 罗睿 SC-271 叶逸凡 SC-345 刘天宇 SC-349 王塬 SC-032 李海啸 SC-379 冯禹锟 SC-015 史可 SC-065 杨鸿宇 SC-145
NOI2012第一试
第29届全国青少年信息学奥林匹克竞赛CCF NOI 2012第一试竞赛时间:2012年7月30日 8:00-13:00注意:最终测试时,所有编译命令均不打开任何优化开关。
随机数生成器【问题描述】栋栋最近迷上了随机算法,而随机数生成是随机算法的基础。
栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数 m,a,c,X0,按照下面的公式生成出一系列随机数<X n>:X n+1=(aX n + c) mod m其中 mod m 表示前面的数除以 m 的余数。
从这个式子可以看出,这个序列的下一个数总是由上一个数生成的。
用这种方法生成的序列具有随机序列的性质,因此这种方法被广泛地使用,包括常用的C++和Pascal的产生随机数的库函数使用的也是这种方法。
栋栋知道这样产生的序列具有良好的随机性,不过心急的他仍然想尽快知道X n是多少。
由于栋栋需要的随机数是0,1,…,g−1 之间的,他需要将 X n除以 g 取余得到他想要的数,即 X n mod g,你只需要告诉栋栋他想要的数X n mod g 是多少就可以了。
【输入格式】输入文件random.in中包含6个用空格分割的整数 m,a,c,X0,n 和 g ,其中 a,c,X0是非负整数,m,n,g 是正整数。
【输出格式】输出到文件random.out中,输出一个数,即 X n mod g。
【样例输入】11 8 7 1 5 3【样例输出】2【样例说明】<X n>因此答案为 X5【数据规模与约定】骑行川藏【问题描述】蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨。
川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因此在每天的骑行前设定好目的地、同时合理分配好自己的体力是一件非常重要的事情。
NOIP 2012 提高组 解题报告
NOIP 2012简要题解王赢绪东北师大附中高二二班499167119@2012年11月19日分数分布:Day 1:Problem Contest Current Vigenère密码(vigenere)100 100国王游戏(game)100 100开车旅行(drive)70 100Day 2:Problem Contest Current 同余方程(mod)100 100借教室(classroom)90 100疫情控制(blockade)50 100题解:Day 1:Problem 1 Vigenère密码(vigenere)这是一道模拟题,我的做法的先把密钥都换成大写或者小写。
然后对输入的加密文章进行处理,如果当前对应的密钥位置超过了密钥的总长度,则把当前位置转回1即可,并且注意加密文章的大小写问题。
时间复杂度为O(n+m),其中n和m分别为两个字符串的长度。
Problem 2国王游戏(game)这道题的主要考察点是高精度乘法除法以及贪心算法的应用。
这是USACO 2007年某次月赛的改编题。
我们不难观察出必存在一种最优的安排方案,是按照每个人左右手两个数的乘积由小到大排序后计算得来,对于乘积相同的我们可以不考虑他们的顺序。
Problem 3开车旅行(drive)这道题我只能想到用平衡树然后倍增维护每个点往前走2的次幂到达哪,以及需要的路程为多少。
具体实现是这样的,我们首先按照站点倒序的顺序进行处理,那么显然每个点离它最近的那个点一定是它高度值的前驱或者后继(如果存在的话),接下来我们考虑每个点的次近点,比如最近点为前驱,那么显然次近点为前驱的前驱或者后继,而如果最近点为后继,则次近点为后继的后继或者前驱。
所以我们可以花O(n log n)的时间处理完成每个点的最近点及次近点。
接下来由于我们已经有了每个点可以到达的最近点及次近点,那么我们可以处理出每个点走2的次幂以后,A走过的路程为多少,B走过的路程为多少,以及此时所在的位置。
NOIP2012提高组复赛试题
CCF全国信息学奥林匹克联赛(NmP2012)复赛提高组day22. 1 ·同余方程〖问题描述〗求关于的同余方程三1 (mod句的最小正整数解。
输入〗输入文件为mod.ino输入只有一行,包含两个正整数用一个空格隔开输出〗输出文件为mod.outo输出只有一行,包含一个正整数№即最小正整数解。
输入数据保证一定有解。
〖输入输出样例〗对于40%的数据,2 L000:对于60%的数据,2 50,000,000:对于100%的数据,2,2,000,000,000。
2 ·借教室 (classroom. cpp/c/pas)问题描述〗在大学期间,经常需要租借教室。
大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。
教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。
面对海量租借教室的信息,我们自然希望编程解决这个问题。
我们需要处理接下来n天的借教室信息,其中第i天学校有个教室可供租借。
共有m份订单,每份订单用三个正整数描述,分别为d],斗t},表示某租借者需要从第丬天到第t]天租借教室(包括第丬天和第t)天),每天需要租借dj个教室。
我们假定,租借者对教室的大小、地点没有要求。
即对于每份订单,我们只需要每天提供d]个教室,而它们具体是哪些教室,每天是否是相同的教室则不用考虑。
借教室的原则是先到先得,也就是说我们要按照订单的先后顺序依次为每份订单分配教室。
如果在分配的过程中遇到一份订单无法完全满足,则需要停止教室的分配,通知当前申请人修改订单。
这里的无法满足指从第丬天到第t)天中有至少一天剩余的教室数量不足d)个。
现在我们需要知道,是否会有订单无法完全满足。
如果有,需要通知哪一个申请人修改输入〗输入文件为classroom.in第一行包含两个正整数n,m,表示天数和订单的数量。
第二行包含n个正整数,其中第i个数为ri,表示第i天可用于租借的教室数量。
接下来有m行,每行包含三个正整数dJ,s],t],表示租借的数量,租借开始、结束分别在第几天。
NOIP2012第十八届全国青少年信息学奥林匹克联赛初赛试题_提高组 C++语言
可达,则以下说法正确的有( ) 。 A. v1 到 v2 的最短路径可能包含一个环 B. d (v1 , v2 ) d (v2 , v1 ) C. d (v1 , v3 ) d (v1 , v2 ) d (v2 , v3 ) D.如果 v1 v2 v3 v4 v5 是 v1 到 v5 的一条最短路径,那么 v2 v3 v4 是 v2 到 v4 的一条最短路径 7.逻辑异或( )是一种二元运算,其真值表如下所示。 a False False True True b False True False True
一、单项选择题(共 10 题,每题 1.5 分,共计 15 分;每题有且仅有一个正确 选项) 1.目前计算机芯片(集成电路)制造的主要原料是() ,它是一种可以在沙子中 提炼出的物质。 A.硅 B.铜 C.锗 D.铝
2.( )是主要用于显示网页服务器或者文件系统的 HTML 文件内容,并让用户与 这些文件交互的一种软件。 A.资源管理器 B.浏览器 C.电子邮件 D.编译器
A.HTTP
10.以下关于计算复杂度的说法中,正确的有(
A.如果一个问题不存在多项式时间的算法,那它一定是 NP 类问题 B.如果一个问题不存在多项式时间的算法,那它一定不是 P 类问题 C.如果一个问题不存在多项式空间的算法,那它一定是 NP 类问题 D.如果一个问题不存在多项式空间的算法,那它一定不是 P 类问题 三、问题求解(共 2 题,每题 5 分,共计 10 分) 1.本题中, 我们约定布尔表达式只能包含 p,q,r 三个布尔变量, 以及 “与” (∧) 、 “或” (∨) 、 “非” (?)三种布尔运算。如果无论 p,q,r 如何取值,两个布尔表
int main() { cin>>s1; cin>>s2; n=s1.size() memset(lefts, memset(rights memset(father dfs(0,1); } 输入: ABCDEF BCAEDF 输出:_________ 五、完善程序(第 1 题第 2 空 3 分,其余每空 2.5 分,共计 28 分) 1.(排列数)输入两个正整数 n,m(1≤n≤20,1≤m≤n),在 1~n 中任取 m 个数, 按字典序从小到大输出所有这样的排列。例如 输入:3 2 输出:1 2 1 3 2 1 2 3 3 1 3 2 #include<iostream> #include<cstring> Using namespace std;
2012十八届noip提高组题目及答案-推荐下载
p,q,r 如何取值,两个布尔表达式的值总是相同,则称它们等价。例如(p∨q)∨r 和 p∨(q∨r)等价,p∨¬p 和 q∨¬q 也等价;而 p∨q 和 p∧q
不等价。那么两两不等价的布尔表达式最多有
个。
2. 对于一棵二叉树,独立集是指两两互不相邻的节点构成的集合。例如,图 1 有 5 个不同的独立集(1 个双点集合,3 个单点集合、1 个空集),
C. 国际会议中,每个人都与他国地位对等的人直接进行会谈
D. 体育比赛中,每一级比赛的优胜者晋级上一级比赛
5.如里不在快速排序中引入随机化,有可能导致的后果是( )。
A.数组访问越界
B.陷入死循环
C.排序结果错误
D.排序时间退化为平方级
6.1946 年诞生于美国宾夕法尼亚大学的 ENIAC 属于( )计算机。
readln(n); ans := 0; for i:=1 to n do
if gcd(n,i)=i then ans := ans + 1;
writeln(ans); end. 输入:120 输出:_____________ 3. var
图 2 有 14 个不同的独立集。那么图 3 有
个不同的独立集。
三、阅读程序写结果。(共 4 题,每题 8 分,共计 32 分)
1. var n,i,temp,sum:integer; a :array[1..100] of integer;
begin readln(n); for i:=1 to n do read(a[i]); for i:=1 to n-1 do if a[i]>a[i+1] then begin temp := a[i]; a[i] := a[i+1]; a[i+1] := temp; end; for i:=n downto 2 do if a[i]<a[i-1] then begin temp := a[i]; a[i] := a[i-1]; a[i-1] := temp; end; sum := 0; for i:=2 to n-1 do inc(sum,a[i]); writeln(sum div (n-2));
(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找最长的路径的程序。
山东2011——2012年NOIP提高组一等奖分布表-莱阳第九中学
六、交流学习
1、山东省夏令营 2、培训机构 3、论坛 4、在线题库
七、资料
NOI官方网站: 山东计算机学会: 信息学初学者之家:/bbs 信息学奥林匹克竞赛网络平台: 中小学电脑报·NOI导刊/web/Noi.aspx
1.结构化程序设计的基本概念 2.阅读理解程序的基本能力 3.具有将简单问题抽象成适合计算机解决的模型的基本能力 4.具有针对模型设计简单算法的基本能力 5.程序流程描述(自然语言/伪码/NS图/其他) 6.程序设计语言(PASCAL/C/C++)- 2003仍允许BASIC
1.初等算法(计数、统计、数学运算等) 2.排序算法(冒泡法、插入排序、合并排序、快速排序) 3.查找(顺序查找、二分法) 4.回溯算法
中国计算机学会数次向教育部提出竞赛保送加分制度的改革方案。
2009年媒体数次爆光高考加分舞弊事件,2009被称为“加分年”。
2010年教育部出台教育发展规划的草案,要扩大高校的自主招生。
2012年中国计算机学会又通报三个省份因作弊判0分::江西省12名选手(来自3 所学校)、陕西省18名选手(来自5所学校)、山东省4名选手(来自4所学校)。
11月第三个周,周五全天报到,抽签,周五晚领队教练会议,提高组30分钟试机。 周六上午提高组(身份证)复赛,下午普及组复赛,周日上午提高组复赛,每天的测试 数据按时上传CCF。
8-10天后,ccf公布将提高组成绩。对成绩有异议的,一般在公布4天内提出申诉。 申诉期结束4天后公布一等奖全国最低分数线和各省获奖名单。
获奖年级 高二 高二 高二 高一 高三 高三 高一 高三 高一
奖项 二等奖 二等奖 二等奖 二等奖 一等奖 一等奖 二等奖 二等奖 二等奖
(word完整版)NOIP提高组初赛历年试题及答案阅读题篇,.docx
(word完整版)NOIP提高组初赛历年试题及答案阅读题篇,.docxNOIP 提高组初赛历年试题及答案阅读题篇程序写果(共 4 ,每 8 分,共 32 分)程序的最好方法并非是依次从到尾。
程序不像迷,我无法从末尾几找到答案,也不像一本引人入的籍,只需直接翻到褶最多的那几,我就能找到最精彩的片断。
因此我在程序,最好逐一考察研究每一段代,搞清楚每一段代的来去脉,理解每一段代在程序中所起的作用,而形成一个虚的程序构,并以此基来行。
1、分:高入手,逐深入,正确理解程序。
2、写注解:固化、、提已有的理解成果。
3、先模:根据代序跟踪量,模运算。
4、找律:先模几次循后,找出背后的律。
5、看功能:从代构和运算果判断程序功能。
6、猜算法:有不知道算法,通构和函数猜一猜。
7、方法:了解程序本后,一个熟悉的方法。
大多数人来,写程序是令人开心的一件事情,人的程序却很痛苦,很恐惧,宁愿自己重写一遍。
其到好的程序,就像一篇美文,令人心神怡,豁然开朗,因背后是一个人的思,甚至整个人生。
人的程序不可以巩固自己的知,启自己的思,提升自己的修养,你收,其,也是在学、在、在工作中的最重要、最常用的基本功。
如果写程序是把自己的思化代,程序就是把代化你理解的人的思。
当你程序有烈的代入感,像演一,真正入到的精神世界,面部表情也随之日丰富起来。
祝你!你通关了!之,看得多,得多,拼得多,你就考得多??NOIP2011-1 .#include#includeusing 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;< p="">return 0;}输入:114 5 6 6 4 3 3 2 3 2 1一步步模拟,注意输出的是sum超出循环条件时的i 值(中位数),而不是sum ,也不是a[x]输出: 3NOIP2011-2 .#include using namespace std; int n;void f2(int x,int y); void f1(int x,int y){if(x<n)< p="">f2(y,x+y);}void f2(int x,int y){cout<<x<<' ';<="" p="">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 34 NOIP2011-3 .#includeusing 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;< p="">return 0;}输入:4 61 2 102 3 203 4 304 1 401 3 502 4 60一看就知这是深搜算法(DFS ),输入是个四个顶点的无向图(邻接矩阵如下):如len>ans,则ans=len,可以说明这是个在图中用DFS找最长的路径的程序。
NOIP提高组初赛及答案C
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线生高0不产中仅工资2艺料22高试2可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时2卷,32调需3各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看工且25作尽52下可22都能护可地1关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编试求5写、卷技重电保术要气护交设设装底备备置。4高调、动管中试电作线资高气,敷料中课并设3试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
2012福建省信息学奥林匹克CCF NOIP夏令营第一天训练(附解题思路及参考程序)
2012福建省信息学奥林匹克CCF NOIP夏令营第一天训练(附解题思路及参考程序)问题名称文件名输入文件输出文件时限分值足球football football .in football.out 1s 100 数列排序seqsort seqsort.in seqsort.out 1s 100 计算概率calculate calculate.in calculate.out 1s 100 三角形牧场pasture pasture.in pasture.out 1s 100 数列seq seq.in seq.out1s 100内存限制均为256M足球(football)【问题描述】我们当中有很多热爱中国足球的同学,我们都知道中超(中国足球超级联赛)的规则:一场比赛中,若获胜(即你的得分严格大于对手得分)则获得3的积分,若打平(即你的得分等于对手得分)则获得1分,若失败(即你的得分严格小于对手得分)获得0积分。
这个问题很简单,假设N轮比赛中你一共攻入S个球,丢掉T个球,那么你可能获得的最大得分和最小得分是多少?【输入文件】多组数据,每组数据一行:一行三个整数S、T、N(S、T >= 0,N >= 1)。
【输出文件】对于每组数据输出一行,两个整数表示最大得分和最小得分。
【样例输入】1 1 11 1 2【样例输出】1 13 2数列排序(seqsort)【问题描述】给定一个数列{an},这个数列满足ai≠aj(i≠j),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换?【输入文件】第一行,正整数n (n<=100,000)。
以下若干行,一共n个数,用空格分隔开,表示数列{an},任意-231<ai<231。
【输出文件】只有一行,包含一个数,表示最少的交换次数。
【样例输入】88 23 4 16 77 -5 53 100【样例输出】5计算概率(calculate)【问题描述】小明有n个长度不一的小木棍,这些木棍的长度都是正整数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CCF全国信息学奥林匹克联赛(NOIP2012)复赛提高组 day1(请选手务必仔细阅读本页内容)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU Intel Core2 Quad Q8200 2.33GHz, 内存2G,上述时限以此配置为准。
4、特别提醒:评测在NOI Linux下进行。
1.Vigenère密码(vigenere.cpp/c/pas)【问题描述】16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。
Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。
在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为密文,用C表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为k。
在Vigenère密码中,密钥k是一个字母串,k=k1k2…k n。
当明文M=m1m2…m n时,得到的密文C=c1c2…c n,其中c i=m i®k i,运算®的规则如下表所示:®【输入】输入文件名为vigenere.in。
输入共2行。
第一行为一个字符串,表示密钥k,长度不超过100,其中仅包含大小写字母。
第二行为一个字符串,表示经加密后的密文,长度不超过1000,其中仅包含大小写字母。
【输出】输出文件名为vigenere.out。
输出共1行,一个字符串,表示输入密钥和密文所对应的明文。
对于100%的数据,输入的密钥的长度不超过100,输入的密文的长度不超过1000,且都仅包含英文字母。
2.国王游戏(game.cpp/c/pas)【问题描述】恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。
首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。
然后,让这n位大臣排成一排,国王站在队伍的最前面。
排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。
国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。
注意,国王的位置始终在队伍的最前面。
【输入】输入文件为game.in。
第一行包含一个整数n,表示大臣的人数。
第二行包含两个整数a和b,之间用一个空格隔开,分别表示国王左手和右手上的整数。
接下来n行,每行包含两个整数a和b,之间用一个空格隔开,分别表示每个大臣左手和右手上的整数。
【输出】输出文件名为game.out。
输出只有一行,包含一个整数,表示重新排列后的队伍中获奖赏最多的大臣所获得的金币数。
【输入输出样例】【输入输出样例说明】按1、2、3号大臣这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按1、3、2这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按2、1、3这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按2、3、1这样排列队伍,获得奖赏最多的大臣所获得金币数为9;按3、1、2这样排列队伍,获得奖赏最多的大臣所获得金币数为2;按3、2、1这样排列队伍,获得奖赏最多的大臣所获得金币数为9。
因此,奖赏最多的大臣最少获得2个金币,答案输出2。
【数据范围】对于20%的数据,有1≤ n≤ 10,0 < a、b < 8;对于40%的数据,有1≤ n≤20,0 < a、b < 8;对于60%的数据,有1≤ n≤100;对于60%的数据,保证答案不超过109;对于100%的数据,有1 ≤ n ≤1,000,0 < a、b < 10000。
3.开车旅行(drive.cpp/c/pas)【问题描述】小A和小B决定利用假期外出旅行,他们将想去的城市从1到N编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市i的海拔高度为H i,城市i和城市j之间的距离d[i,j]恰好是这两个城市海拔高度之差的绝对值,即d[i,j]=|H i−H j|。
旅行过程中,小A和小B轮流开车,第一天小A开车,之后每天轮换一次。
他们计划选择一个城市S作为起点,一直向东行驶,并且最多行驶X公里就结束旅行。
小A和小B 的驾驶风格不同,小B总是沿着前进方向选择一个最近的城市作为目的地,而小A总是沿着前进方向选择第二近的城市作为目的地(注意:本题中如果当前城市到两个城市的距离相同,则认为离海拔低的那个城市更近)。
如果其中任何一人无法按照自己的原则选择目的城市,或者到达目的地会使行驶的总距离超出X公里,他们就会结束旅行。
在启程之前,小A想知道两个问题:1.对于一个给定的X=X0,从哪一个城市出发,小A开车行驶的路程总数与小B行驶的路程总数的比值最小(如果小B的行驶路程为0,此时的比值可视为无穷大,且两个无穷大视为相等)。
如果从多个城市出发,小A开车行驶的路程总数与小B行驶的路程总数的比值都最小,则输出海拔最高的那个城市。
2. 对任意给定的X=X i和出发城市S i,小A开车行驶的路程总数以及小B行驶的路程总数。
【输入】输入文件为drive.in。
第一行包含一个整数N,表示城市的数目。
第二行有N个整数,每两个整数之间用一个空格隔开,依次表示城市1到城市N的海拔高度,即H1,H2,……,H n,且每个H i都是不同的。
第三行包含一个整数X0。
第四行为一个整数M,表示给定M组S i和X i。
接下来的M行,每行包含2个整数S i和X i,表示从城市S i出发,最多行驶X i公里。
【输出】输出文件为drive.out。
输出共M+1行。
第一行包含一个整数S0,表示对于给定的X0,从编号为S0的城市出发,小A开车行驶的路程总数与小B行驶的路程总数的比值最小。
接下来的M行,每行包含2个整数,之间用一个空格隔开,依次表示在给定的S i和X i下小A行驶的里程总数和小B行驶的里程总数。
【输入输出样例1】【输入输出样例1说明】各个城市的海拔高度以及两个城市间的距离如上图所示。
如果从城市1出发,可以到达的城市为2,3,4,这几个城市与城市1的距离分别为1,1,2,但是由于城市3的海拔高度低于城市2,所以我们认为城市3离城市1最近,城市2离城市1第二近,所以小A会走到城市2。
到达城市2后,前面可以到达的城市为3,4,这两个城市与城市2的距离分别为2,1,所以城市4离城市2最近,因此小B会走到城市4。
到达城市4后,前面已没有可到达的城市,所以旅行结束。
如果从城市2出发,可以到达的城市为3,4,这两个城市与城市2的距离分别为2,1,由于城市3离城市2第二近,所以小A会走到城市3。
到达城市3后,前面尚未旅行的城市为4,所以城市4离城市3最近,但是如果要到达城市4,则总路程为2+3=5>3,所以小B会直接在城市3结束旅行。
如果从城市3出发,可以到达的城市为4,由于没有离城市3第二近的城市,因此旅行还未开始就结束了。
如果从城市4出发,没有可以到达的城市,因此旅行还未开始就结束了。
【输入输出样例2说明】当X=7时,如果从城市1出发,则路线为1 -> 2 -> 3 -> 8 -> 9,小A走的距离为1+2=3,小B走的距离为1+1=2。
(在城市1时,距离小A最近的城市是2和6,但是城市2的海拔更高,视为与城市1第二近的城市,所以小A最终选择城市2;走到9后,小A只有城市10可以走,没有第2选择可以选,所以没法做出选择,结束旅行)如果从城市2出发,则路线为2 -> 6 -> 7 ,小A和小B走的距离分别为2,4。
如果从城市3出发,则路线为3 -> 8 -> 9,小A和小B走的距离分别为2,1。
如果从城市4出发,则路线为4 -> 6 -> 7,小A和小B走的距离分别为2,4。
如果从城市5出发,则路线为5 -> 7 -> 8 ,小A和小B走的距离分别为5,1。
如果从城市6出发,则路线为6 -> 8 -> 9,小A和小B走的距离分别为5,1。
如果从城市7出发,则路线为7 -> 9 -> 10,小A和小B走的距离分别为2,1。
如果从城市8出发,则路线为8 -> 10,小A和小B走的距离分别为2,0。
如果从城市9出发,则路线为9,小A和小B走的距离分别为0,0(旅行一开始就结束了)。
如果从城市10出发,则路线为10,小A和小B走的距离分别为0,0。
从城市2或者城市4出发小A行驶的路程总数与小B行驶的路程总数的比值都最小,但是城市2的海拔更高,所以输出第一行为2。
【数据范围】对于30%的数据,有1≤N≤20,1≤M≤20;对于40%的数据,有1≤N≤100,1≤M≤100;对于50%的数据,有1≤N≤100,1≤M≤1,000;对于70%的数据,有1≤N≤1,000,1≤M≤10,000;对于100%的数据,有1≤N≤100,000,1≤M≤10,000,-1,000,000,000≤H i≤1,000,000,000,0≤X0≤1,000,000,000,1≤S i≤N,0≤X i≤1,000,000,000,数据保证H i互不相同。