10.29三校聯考反思

炸完了= = 只有50分
第一題爆零
判重點+快速冪想法沒多大問題,但是實現時判重用了一個複雜方法出現莫名其妙的錯誤,也沒什麼好說的,考試時應該找一種簡單好寫好理
解的方法啊,而且寫完後沒有自己編測試數據進行校對,如願爆零。

第二題照樣爆零。。
很明顯的樹形dp,dp轉移想了比較久,實現的大體思路和其他人相同,但是沒寫出dp轉移就直接寫代碼,結果出現一個較爲隱晦的錯誤,掛完
了。。可以歸結于思路沒理清吧。

第三題50分
在前兩道題都沒有編測試數據校對的情況下留了一個小時20分鐘寫這道題,先寫了熟悉的LCA半小時拿到30分(還不如花時間弄幾組一二兩題
的測試數據出來= =)又五分鐘寫了個暴力拿了10分,剩下30+分鐘搞50分的基環外向樹,結果由於沒寫過加上神奇的判環方法只有10分。。
於是總分50分
平時考試很少自己弄測試數據去效驗自己的程序,弊端今天表現出來了,總是花大筆時間在寫代碼上,壓縮看題目和思考以及驗證的時間來寫

代碼。
還是比較後悔沒有回頭去好好過簡單題。。本來這種分類討論代碼題就是在最後保證前兩題通過的情況下再寫能拿多少分就多少分的。。
不能急着寫代碼呀。。慢一點看題總是有好處的。。並不是有思路並且寫出來的題必然能拿到滿分,花去更多時間拿很少的分數還不如花一點
時間改錯挽回更大的損失

思想
T1:把每個點能變換出來的點都弄出來去重後判定在正方形1/8的三角形內
沒有覆蓋的節點數量,然後快速冪。
T2:樹形dp,定義狀態dp[u][0]爲u的子樹不可以提供父親禮物的組合數量,
dp[u][1]爲u的子樹提供父親禮物的組合數量,然後
dp[u][0] = multipleup{ dp[soni[u]][0]+dp[soni[u]][1] }
dp[u][1] = sum { dp[soni[u]][1]*multipleup{ dp[sonj[u]][0] + dp[sonj[u]][1] } } | i!=j
爲了快速計算dp[u][1]可以用
k=multipleup{ dp[sonj[u]][0] + dp[sonj[u]][1] }/(dp[soni[u]][0] + dp[soni[u]][1])*dp[soni[u]][1]
來算,由於除法不支持取模運算,用費馬小定理+快速冪快速算逆元可以優化。
(ps:剛剛推了一會公式吧程序改過來就AC了QwQ)
T3:
暴力spfa10分
LCA倍增30分
基環外向樹用LCA維護樹內詢問+環上前綴和50分
仙人掌樹縮點LCA10分
說得簡單,代碼爆炸

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章