luogu題目傳送門
首先需要知道這是個異或方程對吧那真是美妙啊。。。然後既然看到位運算,又有這麼多,就可以考慮線性基(做題技巧),那我們就丟進去
接下來看一看線性基,哇,性質美妙
它不就是gauss消元裡面想要的上三角矩陣嗎
所以說:
所以怎麼消元呢?這可是個異或方程,我們要解出來啊
列舉整個線性基的g[i]
如果g[i][j]這一位上為1,是不是就有乙個未知數!
(注意這是個異或方程)
我們的線性基在g[j][j]上是一定會有數的對吧
那我們直接給g[i]異或一下g[j]不就消掉了!!!
直到列舉玩整個g[i],剩下的y(輸入的那個"等號右邊"的)如果為0就是地球了,為1就是外星了(單數隻腳。。。)
#include#include#include#include#include#include#include#include#include#include#include#include#define lst long long
#define ldb long double
#define n 2050
using namespace std;
const int inf=1e9;
int read()
while(ch>='0'&&ch<='9')s=(s<<3)+(s<<1)+(ch^48),ch=getchar();
return m?-s:s;
}int m,n,done;
bitsetf[n],g[n];
void insert(int now)//線性基插入
f[now]^=g[j];}}
}void gauss()//高斯消元
}int main()
for(int i=1;i<=m;++i)
}if(done!=n)
gauss();
return 0;
}
yeh!!! BZOJ 1923 外星千足蟲(高斯消元)
題意 有n個數字,m次測試。每個數字為0或者1。每次測試選出一些數字出來把他們加起來。現在告訴你每次測試選出的是哪些數字以及他們和的奇偶性。你需要給出到第幾次測量為止就可以判斷出所有n個數字的奇偶性,並輸出每個數字的奇偶性。m次之後還不能判斷輸出無解。思路 其實這就是乙個高斯消元。但是n和m太大會超...
SDOI2010 外星千足蟲(高斯消元)
高斯消元裸題。方法一 暴力,o 2 n 20分 方法二 直接gauss,加點玄學技巧搞得好的話70分 方法三 使用bitset優化,複雜度 o frac 不會的同學看一下 吧,跟裸gauss差不多.只不過消元地方用異或消 真的是 一看就懂了呢.1 include2 include3 include4...
BZOJ1923 外星千足蟲(線性基)
bzoj 洛谷第一行是兩個正整數 n,m。接下來 m行,按順序給出 charles 這m次使用 點足機 的統計結果。每行包含乙個 01 串和乙個數字,用乙個空格隔開。01 串按位依次表示每只蟲子是否被放入機器 如果第 i 個字元是 0 則代表編號為 i 的蟲子未被放入,1 則代表已被放入。後面跟的數...