髮捲先看題目。。。
t1的題目描述非常網路流,成功被誤導3秒鐘;然後就想暴力,就是可以滿足這個節點就滿足,不能滿足就不滿足,大概乙個dfs就可以了,然而發現想法有bug
t2剛看沒有什麼想法,只感覺肯定會用到題目性質來做乙個時間比較優的演算法。
t3一看是乙個萬用字元匹配的問題,想了想只知道暴力匹配。
看完題目之後發現還是t1比較可做,在發現之前思路的bug之後想到了可以用乙個類似揹包的思路做。對每個點的每個兒子進行0-1揹包,算出不超過在當前節點流量限制的情況下,最多能選多少個節點;在能夠選節點個數同樣多的方案中,貪心地選取所需能量最小的那種方案。葉節點作為邊界特殊處理一下。
t1做得比較順暢,自己手出了幾組資料,改了一下細節然後就結束。
後面還是覺得t2要有思路一些,就開始做t2。
剛開始以為是三分(最近做三分有點走火入魔…),但發現它並不是乙個單峰函式。
然後一般情況下這種跟區間有關的問都有一些比較有意思的那種放乙個計數器然後掃一遍加加減減的那種做法嘛,就開始亂塗亂畫。
大概猜了乙個結論吧,就是e
ee的取值只會在每個區間的右端點才可能取到,這樣的話e
ee就是可列舉的了。
然後就列舉e
ee,列舉每個區間然後進行計算,經過對拍之後發現結論是正確的。
這裡大概感性理解一下這個結論:
當e
ee取得很小的時候,每個區間的貢獻都是a
ia_i
ai,都很小;
當e
ee逐漸增大時,每個區間的貢獻都會增大;
但當e
ee超過一些區間的右端點時,這個區間就會報廢,就會造成損失。
當e
ee恰好在某個區間右端點的時候,就是馬上造成損失之前(懸崖勒馬),所以
可是複雜度還是很高,大概只能過50
%50\%
50%吧,就嘗試優化。
想到算每乙個區間的貢獻,然後發現要把很多個a
ia_i
ai加起來什麼的,覺得複雜度降不下來,就放棄了。(其實跟正解很接近了
想了很久沒有什麼思路,就先儲存了這個**,去看t3,看了一下時間還剩1小時40分鐘。
t3磕了很久但是沒有什麼思路,但總不可能放棄,就果斷打了乙個其實自己心裡也沒什麼底的暴力匹配。
先預處理一下每個字母在b
bb串的哪些位置出現過,當a
aa串出現萬用字元的時候就可以讓萬用字元後面那乙個字元去對應b
bb中任意乙個相同的字元。
首尾可以特判,不過感覺不簡潔而且沒太大用處所以我沒有寫。
雖然只是乙個暴力,但是有很多細節的東西寫崩了,所以還調了很久。注意一下寫遞迴的時候很多只用於其中一層的變數最好寫到引數裡面,這種錯誤很不好調。
最後寫完了測試完還有十幾分鐘的樣子,再檢查了一下檔名什麼的就結束了。
出分之後還是挺驚訝的,t1爆零了,而自己不怎麼看好的t3有七十幾分,t2比較正常,五十幾分。
t1也沒想到是貪心,不過從題解的話來看,樹揹包應該是可以過的呀,但是全wa了,還沒有看出來是**。
不過這個貪心確實不好證明正確性 (感性理解?
t2差一點想到了正解,但是失之毫釐,差之千里。我覺得e
ee的取值只需要右端點就可以了,但題解把左端點也弄進去了,我覺得沒有必要;不過雖然左端點不會成為答案,但可以方便統計答案;可能我一直在看右端點就沒有想到這個地方來,但這道題果然還是那種區間問題的小套路。
t3 re了3個點,發現陣列開小了,看錯了,只開了80
%80\%
80%的大小 (糟糕) ;還以為這個「暴力」可以過什麼的,但我還是太天真, 改了之後會t掉2個點,所以還是乖乖按題解的思路寫了一下。
各題題解挖坑代填。
20151006模擬賽總結
今天上午去一中,又考了個模擬賽。這次的題有點考思維。我感覺這個第一題難度稍微大了點。一般noip第一題要麼是簡單的模擬,要麼是裸的簡單演算法,這次的第一題要自己構造演算法,並且還是列舉和貪心套在一起。我開始想的是列舉 揹包,複雜度為n 3,但是資料範圍沒給出三次方的分。於是我就覺得不靠譜。然後發現列...
20151031模擬賽總結
今天去一中,考了個模擬賽,真是坑。本來在八中食堂愉快的享受我的早飯 週末早上的番茄雞蛋燙飯 韭菜肉餅簡直爽!然後geng4512就跑過來說要去一中考試,然後兩口喝完燙飯就和他一起狂跑過去了。這次第一題組合數取模,模的不是質數。想了好大半天,沒什麼想法,然後看了下後面的題,又回來做這道題,想起了階乘分...
20160521模擬賽總結
20160521模擬賽是程式設計實習課程安排的第一次模擬賽 比賽鏈結 備註 這個系列模擬賽屬於程式設計實習練習賽,題目有很大一部分事先練習過,做這些題目為了練習碼 熟練度,也為了進行模擬考試練習的機會,所以這個系列模擬賽我每一次都參加,作為練習 題目清單見下 已解決 01 浮點數求高精度冪 已解決 ...