1. 程式人生 > 其它 >7.16 ZROI-DAY3 模擬賽

7.16 ZROI-DAY3 模擬賽

7.16 ZROI-DAY3 模擬賽

賽時歷程

感覺今天的題目名就很鬼畜,矩陣的秩,偶數圖,組合方案,每一個看起來都很有難度,前兩個聽起來高大上,最後一個聽起來像是神仙組合題目/kk

矩陣的秩,理解了一大會兒,一開始還不知道他這裡說的向量和是哪個(沒仔細理解什麼mod2的矩陣),明白後(賽後感覺自己完全沒明白,簡直是傻掉了),只能通過dfs寫出來23分。過去看T2,T3,感覺T2不好惹,想不到什麼暴力做法。T3吧,也是一頭霧水,或許能DP,但我不懂。

陷入困境以後,看了看提交,大家都會T1的所有樣例和T3的75,也就是\(n^2\) 了,我現在只會T1的爆搜,有點納悶,為什麼我什麼都沒想到。自閉了,再次遇到困難睡大覺。上了廁所清醒了一下,但沒完全清醒,感覺腦子依然不靈光,看到T2的那個k=2,感覺這個還不錯,不過就12分,但現在真的除了這個啥也不會啊,就只好碼了。

寫完的時候差不多過去了兩個半小時,看lk今天的狀態,似乎他也沒有前兩次那麼順利。雖然不管他怎樣都與我無關就是了。

最後也沒想出來什麼東西,但大家的分還都挺好看的?

賽後發現

最後得分35。從兩個半小時只後一分未得。

T1 實際上,那個秩,就跟線性基一樣,就是說,考慮線性基一樣的東西就好,但是因為我在理解上太淺,(太傻了)所以根本沒有理解到有DP的做法。

T2 就傻了,線圖啥的。

T3 組合方案,為什麼我就完全不會啊QAQ DP是類似0/1揹包的東西,DP還是要練!

技術總結

T1

​ 沒想到是找規律題。

\(n^3\) DP考慮到了線性基裡學到的線性相關與線性無關,新加入一行就會有兩種情況,要麼是新加一個秩,要麼是保留原來的秩,所以可以設定狀態,設 \(f[i][j]\)

為前 \(i\) 行,已經有了 \(j\) 個秩的方案數,那麼顯然,新加入一個秩的情況下,不是新秩的情況有 \(2^j\) 種,這裡利用到了大小為 \(j\) 的極大線性無關組可以湊出來 \(2^j\) 種情況的結論,然後就可以轉移 \(f[i][j]=(2^n-2^j)*f[i-1][j-1]+f[i-1][j]*2^j\) ,最後 \(f[n][m]\)就是要求的東西,這個考慮每一個n的時候都需要做一遍 \(n^2\) 的DP,所以說複雜度是 \(O(n^3)\) 的。

​ 接下來,正解可以用生成函式,也可以直接找規律。

T2

​ 線圖!聽都沒聽過,但myh說 這東西 UOJ 裡被問爛了。彳亍。

T3

​ 先講我沒有寫的暴力吧。0/1揹包,列舉雙揹包裡這次放的東西的重量a,b,然後\(f[A+a][B+b]\)\(f[A][B]+1\) 可以轉過來,取max即可。考場太sb。

​ 然後正解是二分答案,雖然我也朝這個方向想過,但是我二分 \(k\) 之後根本不會check,多暴力的判斷都不會,自閉(突然忘了這裡是技術總結)。

​ 感覺今天的題好難頂。