BZOJ-1923-外星千足虫-SDOI2010
生活随笔
收集整理的這篇文章主要介紹了
BZOJ-1923-外星千足虫-SDOI2010
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
描述
分析
- 首先看上去這貌似是一個高斯消元的題目, 直覺吧…
- 每次給出的就相當于是一個方程. 然后很容易想到n條蟲子n個x, x_i的系數為0表示這個方程中沒有i, 否則為1. 然后系數乘以相應的x再相加模2就是輸入的那個結果了.
- 然后就會發現有兩個問題, 首先模怎么辦, 然后時間復雜度太大了, 這種加法方程組的高斯消元復雜度是O(n^3)的.
- 突然想到——加法模2就相當于異或!
- 所以用高斯消元解這個異或方程組就行了, O(n*m)
- 一開始分析復雜度分析錯了, 以為是O(n*m*二進制位數), 而二進制位數就等于n, 那么還是超時…其實m*二進制位數是不科學的, m表示找到一個合法的方程去消元, 找到就退出了, 并不是每次找都進行一次消元.
- 還有一次錯是因為直接我讓高斯消元直接返回i, 也就是最后一次找到的方程的序號.
- 首先i應該+1因為我從0做下標.
- 然后+1也不對因為i+1是最后一次用的方程, 而求的是第幾次統計后得出解來. 是用到的方程中最靠后的那個.
代碼
https://code.csdn.net/snippets/621146
總結
以上是生活随笔為你收集整理的BZOJ-1923-外星千足虫-SDOI2010的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ-1007-水平可见直线-HN2
- 下一篇: BZOJ-3505-数三角形-CQOI2