題目描述
題解:高消解異或方程組板子題。
如果消元結束後剩餘方程(係數一定都為$0$)的結果不為$0$,那麼無解;(但是這道題保證有解)
如果存在自由元(即消掉幾個元後剩餘方程內該項係數都為$0$),那麼多解。
**:
#include#include#include
#include
using
namespace
std;
const
int n = 1050
;const
int m = 2050
;int
n,m,a[m][n];
char
mp[n];
bool
vis[n];
intgs()
vis[i]=0
;
if(i!=tmp)
for(int j=i;j<=n+1;j++)swap(a[i][j],a[tmp][j]);
for(int j=i+1;j<=n;j++)if(vis[j]&&a[j][i])
for(int k=i;k<=n+1;k++)
a[j][k]^=a[i][k];
}return
ret;
}void
up()
intmain()
for(int i=1;i<=n;i++)vis[i]=1
;
int now =n;
while
(gs())
swap(a[now],a[i]);}}
up();
printf(
"%d\n
",now);
for(int i=1;i<=n;i++)
puts(a[i][n+1]?"
?y7m#
":"earth");
return0;
}
bzoj1923 Sdoi2010 外星千足蟲
luo2447 依然是異或方程組的高斯消元求解,第一問其實就是在高斯消元過程中訪問到的用作主元的方程組的下標最大值,因為異或方程組是直接找到為當前元的係數為 1 的異或方程作為主元進行消元過程的 第二問就是消元之後各個未知數的取值 普通的高斯消元會收穫tle,但是我們可以使用 bitset 可以優化...
BZOJ1923 SDOI2010 外星千足蟲
bzoj luogu 給你 m 個 n 元異或方程,方程是乙個乙個給的,問你給到第幾個的時候出解,或者是在得到 m 個方程後仍不能確定解。保證方程不會前後矛盾,即不會出現無解。我今天突然發現異或方程組的高斯消元和線性基就是乙個東西。這道題其實就是問你什麼時候你可以得到 n 個線性無關方程。所以你可以...
BZOJ 1923 Sdoi2010 外星千足蟲
bzoj 1923 sdoi2010 外星千足蟲 高斯消元 第一行是兩個正整數 n,m。接下來 m行,按順序給出 charles 這m次使用 點足機 的統計結果。每行 包含乙個 01 串和乙個數字,用乙個空格隔開。01 串按位依次表示每只蟲 子是否被放入機器 如果第 i 個字元是 0 則代表編號為 ...