1. 程式人生 > >2017年第23屆全國青少年資訊學奧林匹克競賽分割槽聯賽提高組初賽題解報告

2017年第23屆全國青少年資訊學奧林匹克競賽分割槽聯賽提高組初賽題解報告

第二十三屆全國青少年資訊學奧林匹克競賽分割槽聯賽初賽提高組題解報告

山西現代雙語學校南校

劉鍇睿

選擇題

第一題: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 [解析]C634+C64+C65+C66=38
第九題:D [解析]放擋板,答案是C103=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真照顧我這種蒟蒻,但是你出那麼多資料結構理論題幹嘛)。