1. 程式人生 > >2017sc膜你賽4比賽筆記

2017sc膜你賽4比賽筆記

一次 等於 轉化 讓我 時間復雜度 錯誤 我不 數據 考試

可能是因為T2很簡單,T1、T3難到所有人都只打了暴力(好吧T3也不算很難,只不過我太菜),所以區分度很小。總而言之,這次感覺還不錯,起碼該拿的分都拿到了。但是,也感到被題目虐哭的深深無力感……

終於有個好看一點的rank3了orz……

T1勾股數。考試時我的做法就是暴力。先做個預處理,將平方數標記一下。然後枚舉一個a,嵌套枚舉一個b, 檢查是否存在a^2+b^2這個平方數。由於數比較大,直接標記會爆,我還用上了哈希,所幸沒打錯……

考試時想過降維,但是死活不知去掉一重for,如何選擇?想過預處理,先將無用的c給去掉,畢竟自己的平方等於兩數平方和的數是很少的。然並卵,還是兩重for循環。

於是,到了最後,只拿到了暴力的40分。我盡力了。

T2賽馬。覺得T1、T3實在是生無可戀,於是試試這題。自己出幾組小數據,手動分析了一下,發現其實並不難。第一次交,0分?我又想了一遍,確定沒錯,感到懷疑人生。於是將代碼從頭到尾看了一遍。等等,sizeof? 其實是沒加cstring庫的問題,導致CE。再交,看到了10分。

(其實,這種錯誤也不是第一次犯了。沒加庫,沒用printf這些低級錯誤,犯了不值。以後寫代碼模板時,就要養成這樣的習慣,不應該在錯了之後再改。真正的OI比賽,沒有改的機會!)

當時寫了之後不放心,還反復驗證了幾遍,改了點細節。事實證明細心為上是正確的,我被粗心坑過太多次了。雖說題目很水,但還是有好幾個70的,我能夠AC倍感欣慰。

T3數謎。如果沒有m的限制,用組合數學很輕易就能求得總方案數。但問題是,m的限制這個問題非常的棘手。我當時想,假如想要判斷是否合法,就要知道具體的數值,這樣的時間復雜度就是n!(n為位數),顯然只有40分。

能不能邊走邊判斷,剪枝?似乎不行。能不能用轉化思想,總方案數減去非m的倍數的方案數?這個也需要知道具體數值,好像也不行。能不能DP?可惜我不知道狀態該怎麽記。

於是T3卒。考試之後,老師說正解是DP,讓我們想想狀態怎麽記。果然,又是DP太菜的問題。我在DP深海中會砥礪前行,相信總有一天能夠看到勝利的曙光~

2017sc膜你賽4比賽筆記