BZOJ 1923 Sdoi2010 外星千足蟲

2022-04-30 03:57:10 字數 928 閱讀 8004

bzoj_1923_[sdoi2010]外星千足蟲_高斯消元

第一行是兩個正整數 n, m。 接下來 m行,按順序給出 charles 這m次使用「點足機」的統計結果。每行 包含乙個「01」串和乙個數字,用乙個空格隔開。「01」串按位依次表示每只蟲 子是否被放入機器:如果第 i 個字元是「0」則代表編號為 i 的蟲子未被放入,「1」 則代表已被放入。後面跟的數字是統計的昆蟲足數 mod 2 的結果。 由於 nasa的實驗機器精確無誤,保證前後資料不會自相矛盾。即給定資料 一定有解。

在給定資料存在唯一解時有 n+1行,第一行輸出乙個不 超過m的正整數k,表明在第k 次統計結束後就可以確定唯一解;接下來 n 行 依次回答每只千足蟲的身份,若是奇數條足則輸出「?y7m#」(火星文),偶數 條足輸出「earth」。如果輸入資料存在多解,輸出「cannot determine」。 所有輸出均不含引號,輸出時請注意大小寫。

3 5

011 1

110 1

101 0

111 1

010 1

4 earth

?y7m#

earth

高斯消元解異或方程組。

需要使用乙個bitset壓位來加快異或、交換操作。

**:

#include #include #include #include #include using namespace std;

int n,m;

bitset<1050>a[2050];

char s[1050];

int gauss() }}

return re;

}int main()

int tmp=gauss();

if(tmp==-1)

printf("%d\n",tmp);

for(i=1;i<=n;i++)

}

bzoj1923 Sdoi2010 外星千足蟲

luo2447 依然是異或方程組的高斯消元求解,第一問其實就是在高斯消元過程中訪問到的用作主元的方程組的下標最大值,因為異或方程組是直接找到為當前元的係數為 1 的異或方程作為主元進行消元過程的 第二問就是消元之後各個未知數的取值 普通的高斯消元會收穫tle,但是我們可以使用 bitset 可以優化...

BZOJ1923 SDOI2010 外星千足蟲

bzoj luogu 給你 m 個 n 元異或方程,方程是乙個乙個給的,問你給到第幾個的時候出解,或者是在得到 m 個方程後仍不能確定解。保證方程不會前後矛盾,即不會出現無解。我今天突然發現異或方程組的高斯消元和線性基就是乙個東西。這道題其實就是問你什麼時候你可以得到 n 個線性無關方程。所以你可以...

bzoj1923 Sdoi2010 外星千足蟲

題目描述 題解 高消解異或方程組板子題。如果消元結束後剩餘方程 係數一定都為 0 的結果不為 0 那麼無解 但是這道題保證有解 如果存在自由元 即消掉幾個元後剩餘方程內該項係數都為 0 那麼多解。include include include include using namespace std ...