noip 2016 提高組題解


前幾天寫的那個純屬搞笑。(額,好吧,其實這個也不怎么正經)

就先說說day2吧:

T1:這個東西應該叫做數論吧。

然而我一看到就照着樣例在紙上推了大半天(然而還是沒有看出來這東西是個楊輝三角)

然后就想干脆先把n≤25的拿了再說(這個爆不了long long)

然后就硬套用那個組合數公式。

再然后,就只拿了35分。

T2:我勒個去。

這個東西應該用堆來優化的吧。

然而並不會堆。

然后就切一個遍歷一遍把兩端都再加進去(雖然我知道這個時間復雜度估計連20都拿不了)。

一個估計是正解的東西:

思考一下,我們一定會切最長的那一個(廢話,題目的要求),然后就是對於一個已經切過的蚯蚓來說,它首先被分成了i,j(i>=j)那么一定要先切i。

然后就要開三個隊列。

第一個維護已經排好序的原蚯蚓長度。

第二個維護被切后長度長的那一段蚯蚓。

第三個維護被切后長度短的那一段蚯蚓。

這樣的話據說是線性的(如果這個做法真的能ac的話)。

T3:

angrybirds??

所以說去年是斗地主,前年是flappy bird。然后今年就是angrybirds?那明年估計就要出植物大戰僵屍了(這個Flag就立這里了)。

言歸正傳:

作為一個第一年參加的蒟蒻,看完題以后腦海里就兩個字:朕不會!!(一,二,兩,恩沒錯,就是兩個字)

好吧,大神們說這個么狀態狀壓什么的,真心不會。

然后枚舉兩個豬,再加上鳥,總共三個點,能確定一個拋物線。(標號最小的豬一定要死,每次可以解決最小的豬,只枚舉另一只豬來確定拋物線)。

然后就沒有然后了,寫了個騙分的東西,然而沒騙到。

------------------------------------------------------------------------------------------分割線-----------------------------------------------------------------------------------

day1:

這個東西今年是要逆天呀。

T1:

摸你題。比較簡單的吧。

但是,那么長的題目描述說真的第一次看嚇到我了。(還有那個真的想再吐槽一次的mogician)

然而就是細節比前兩年的多多了,寶寶本來的滿分程序,被卡掉了70分。

在此提醒同志們,寫if一定要加else。

其實就是判斷一下往左數還是往右數,然后你現在的小人是朝內還是朝外。

T2:

當我第一次看到這道題的時候,其實我的內心是:

這樣的

這樣的

還有這樣的

還有這樣的

等等,這個是什么鬼。

秒秒鍾的55變25有木有

 

算了說正經的。

作為一個連樹都沒學過的男人,我真的真的不知道這個東西到底怎么搞。

於是寫了個25分的暴力。

下面是轉自WerKeyTom_FTD的博客的T2正解。

我們用d表示深度,a表示一條路線的長度。 
對於路線S->T,若lca為V,拆成S->V以及V->T兩條樹鏈。 
對於S->V上每一個點j,其答案可以加一的條件: 
dSdj=wj 
dS=dj+wj 
右邊只與j有關。 
同樣,對於V->T上每一個點j,其答案可以加一的條件: 
dTdj=aiwj 
dTai=djwj 
右邊只與j有關。 
因此思考離線做法,對於一條路線,在S和T分別打兩個tag,並在lca即V處回收tag。 
用兩顆線段樹維護子樹內目前還沒被撤銷掉的dS和dT-ai的權值線段樹,權值可能為負數需要設置一個絕對值的最大值來加上,或者提前進行離散化。 
這個線段樹是單點修改和查詢的,用線段樹僅僅是因為線段樹可以進行合並。 
這個算法帶log,如何線性知道一個子樹內某權值的數量? 
維護一個桶,進入一個節點時得到該節點子樹所需權值的數量t1,退出該節點時在桶中得到該節點子樹所需權值的數量t2,那么顯然該子樹內有t2-t1個所需權值。

T3:

這個題猛一看就像是不可做的。

我們會發現這個題辣么長的題目描述,

辣么神秘的期望值,

辣么長的題目描述,

以及那個令人發指的需要自己推大半天的表格。

然而,當真正去想的時候,原來這題的暴力分真的非常好拿。

下來后聽機房的大神說這道題:

第一句:"wc原來都是套路”

第二句:"這不就是個那個背包模型,只要再加上那四種情況就行了"

第三句:"然后在用一下dp就可以了"

沒錯,這就ok了。

---------------------------------------------------------------------------------------------------------分割線-------------------------------------------------------------------------------------------------------------

最后,也是本人要說的最最最重要的一點。

1.千萬千萬不要相信監考老師,你就相信自己機房里的學長和機房的老師說的提交各式,然后按照這個格式提交,千萬別讓監考老師檢查(因為他們根本什么都不知道)

2.寫if的時候一定一定要加else。

3.考試的時候別讓別人或其他因素干擾你的思路和考試的心情。不要因為題太難導致根本就不想做,也不要因為題太簡單就掉以輕心:

比如這回的day1算是比較難的了,但是那些難的題給的暴力分也是比較良心的,千萬不要連暴力都不想敲。

然后就是day1的T1了,我以為很簡單,結果......以后寫if一定要加else!!!!!!!

4.吃好,玩好,睡好,喝好,休息好(100kg的本尊覺得這一點非常非常重要)。

5.最后一點,文件名千萬不要打錯,無論是輸入輸出的文件名,源代碼的文件名,以及外層文件夾的文件名,還是最外層以考號命名的文件夾,一旦錯一個就是致命的錯誤。(本人就是文件名錯的,然后第一次noip就完美的爆零了,監考老師說如果誰的提交各式有問題讓他看看,結果老師告訴我沒問題,你交吧......)

 

注:文中出現的我的成績都是用官方數據自己用評測機評的(誰讓我文件名打錯了呢)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM