2017年第23届全国青少年信息学奥林匹克竞赛分区联赛提高组初赛题解报告

来源:互联网 发布:薄洗来 知乎 编辑:程序博客网 时间:2024/05/16 03:17

第二十三届全国青少年信息学奥林匹克竞赛分区联赛初赛提高组题解报告

山西现代双语学校南校

刘锴睿

选择题

第一题:C [解析]NOIP政治题具体通知详见NOI官网(虽然我看了那个通知,但我一个C++记那干嘛)
第二题:B [解析]补码转原码,符号位为0,补码=原码,符号位为1,符号位不变,其余各项取反,最后在末尾+1(考前刚看了)
第三题:A [解析]1600∗900∗16/8/1024=2182.5KB(1600X900=像素个数,256位真彩色=16字节,1600X900*16=总字节数,/8换算bit,/1024转成KB)附各种颜色类型占用bit
1位,(单色);4位:(16色);8位(256色);16(64K色,高彩色);24(16M色,真彩色);32(4096M色,增强型真彩色)。
第四题:C [解析]历史书上说的很清楚是星期六(历史渣渣做错了)其实就是个奥数题啦,我们算出1949~2017年里闰年和平年分别有多少个,然后算出1949年10月1日到2017年10月1日经过了多少天,然后对7取余即可。(我考场上就这么想的,当时我还记得小学数学老师讲的“开奥运会的年不一定是闰年因为整百的年开奥运会但不是闰年”但老师没讲全是这样的:一般的,能被4整除的年份是闰年,不能被4整除的年份是平年;但是如果是世纪年(也就是整百年),就只有能被400整除才是闰年,否则就是平年.如:2000年就是闰年,1900年就是平年,然后我就开开心心的把2000年处理成了平年心里想哈哈哈哈这个坑绕过去了)
其实有个计算公式

万年历算星期几
只要随便说出公元几几年几月几日就可以马上算出是星期几.
只要计算出日的代码,月份代码,年份代码.三个加起来除以七的余数就是星期几,(如余数是三,则就是星期三).
日的代码计算:日的代码最简单,就是它本身,是几号就是几.
月份代码计算:月份代码也很简单,下面有十二个数:1 4 4 7 2 5 7 3 6 1 4 6,分别代表一至十二月份每个月的代码.比如,九月份的代码为6.(据来宾介绍,他是用逆推的方法,计算出这12个月份代码的,即知道某年某月某日是星期几,反过来推算月份代码.)
年份代码计算:年份代码相对比较复杂,先记住2000年对应的年份代码是4,这是基础代码,牢记即可.
假如大于2000年,比如2010年,则对应的年份代码是(2010-2000)÷4=2……2,再用基数代码4减去2倍的商加上余数再加1.即4-2×2+2+1=3,则2010年对应的年份代码为3.如果没有余数,即润年,则余数后面的1也不用加.比如2008年,对应的年份代码为0.
假如小于2000年,比如1991年,则对应的年份代码是(2000-1991)÷4=2……1,再用基数代码4加上2倍的商减去余数.即4+2×2-1=7,则1991年对应的年份代码为7.
再记住1个特殊情况,即润年的3到12月份到最后要加1.
1949年10月1日.
则(2000-1949)÷4=12……3,再4+2×12-3=25,年份代码计算结果为25,加上10月份的代码1,再加上日的代码1,等于27.再除以七的余数为6,则这一天为星期六.

当然最简单的还是把你的手表调到1994年10月1日(蒟蒻没想到)
第五题:A [解析]画个n=m的图(就是显然成立法)
第六题:C [解析]自己推不解了
第七题:B [解析]画一个树就不画了
第八题:C [解析]C364+C46+C56+C66=38
第九题:D [解析]放挡板,答案是C310=120
第十题:B [解析]不会写转发的
不会转发的

第十一题:D [解析]只会用sort,qsort的蒟蒻想自杀
第十二题:D [解析]注意注释,虽然不知道他用的是哪门子语言
第十三题:A [解析]dp应该都会
第十四题:D [解析]ans=1−(0.9∗0.2∗0.9+0.1∗(0.8+0.2∗0.9))=0.74
第十五题:C [解析]2∗60∗3/20=18
第十六题:CD [解析]只会用sort,qsort的蒟蒻又想自杀
第十七题:C [解析]没写过这题的人请右转,慢走不送。NOIP忘了哪一年的初赛原题了
第十八题:D [解析]考前看了一下稳定的含义是原来在前的排序后也在前,(但是只会用sort,qsort的蒟蒻又想自杀),只有插入。
第十九题:BD [解析]没写过这题的人请右转,慢走不送。NOIP忘了哪一年的初赛原题了
第二十题:BD [解析]政治题,图灵谁都能选上,王选就是那个激光照排的(就是初中政治书上的拿的用自己技术印的报纸(好像是泰坦尼克号的)站起来说话的那个大犇。我给找到原图了:
这里写图片描述)(王选奖CCF自己搞的奖项)

填空题

第一题:3 [解析]一看见这题,这不是摩尔庄园精英警察任务里的吗,只可惜当年没有好好研究,为了找这个还登了一下摩尔庄园,都停更了,只有二号神秘湖服务器还能上(童年回忆)据说2018要搞一个摩尔庄园十周年活动,大家可以去捧个场。
以前你玩摩尔,现在摩尔玩你。
这里写图片描述

这里写图片描述

这里写图片描述
标答:对最上面的1、中间的0和中间的0右边那个0做操作即可,共3次。
第二题:4 9 [解析]网络流最小割,大纲里明明说不考,但我学过(\手动开心),后来官方说是没超纲好像是用什么正对偶什么最短路

看程序写结果

第一题 15 [解析]第一题给上大递归,CCF你还我人脑虚拟机的水题。
第二题 17 24 1 8 5 [解析]考场上看像是一个构造幻方但是没敢写,最后发现是NOIP2015提高组D1T1,我还看过这道题,结果还是错了
这里写图片描述
第三题 8 [解析]归并排序求逆序对
第四题 1 3 2017 1 1 321 [解析]是矩形内四十五度反弹,到哪个角,注意cnt清零

填写程序

没写直接抄的dalao的答案
完善程序1:
(1)是不是不少人填了0。。。但是注意下面i的循环是从1开始的!所以呢,rest的初始值是p[0]啊。
(2)这个空的话,我当时是在草稿纸上举了个100÷3来计算的,我们把这个while里面的东西模拟一遍,就可以发现它是求出一个最大的k使得q*k<=p(似乎就是p div q?),那么这里就是填rest < q咯(这里rest=q*k)。
(3)跟上面一个思路的,上面填对了下面就不可能错,很明显是rest/q。
(4)把当前的余数跟除数的下一位合起来继续除,注意要写模!
(5)最后的余数,直接模就好了啊。
完善程序2:
(1)很明显是b的入度加1吧。
(2)找到入度为0的点并进队。
(3)删掉所有与当前队头连接的边,如果有新的点入度为0就进队。
(4)傻逼空,肯定队头指针加1啊。
(5)更傻逼的空,替换最优解,就是比大小啊。

这里写图片描述

总结

今年NOIP初赛考题有些难,但也有重题,还有一些往年的NOIP复赛题目(这是我见过的第二份有往年复赛题的初赛题了),所以要同时复习一下往年复赛题(CCF真照顾我这种蒟蒻,但是你出那么多数据结构理论题干嘛)。

阅读全文
0 0
原创粉丝点击