題目藍鏈
有\(n\)個未知數\(x_1, x_2, \cdots, x_n\),給出\(m\)條訊息,每條訊息選出一些未知數並告訴你他們的和的奇偶性。你的目標是判斷每個未知數的奇偶性
如果前\(k\)條訊息就可以確定所有未知數的奇偶性,輸出\(k\)以及所有未知數的奇偶性,否則輸出這是不可能的
\(n \leq 1000, m \leq 2000\)
抑或方程組的板子題,本質就是用\(bitset\)異或來優化乙個方程加上另乙個方程的這個過程
另外在找第\(i\)行非零方程是盡量找靠前的,同時更新一下最大值即可
時間複雜度\(\mathcal(\frac)\)
#include using namespace std;
#define fst first
#define snd second
#define mp make_pair
#define squ(x) ((ll)(x) * (x))
#define debug(...) fprintf(stderr, __va_args__)
typedef long long ll;
typedef pairpii;
templateinline bool chkmax(t &a, const t &b)
templateinline bool chkmin(t &a, const t &b)
inline int read()
const int maxn = 1e3 + 10;
const int maxm = 2e3 + 10;
bitseta[maxm], ans;
int n, m;
int main()
int max = n;
for (int i = 1; i <= n; i++)
if (!a[p][i])
if (p != i) swap(a[p], a[i]);
for (int j = i + 1; j <= m; j++)
if (a[j][i]) a[j] ^= a[i];
} for (int i = n; i; i--)
printf("%d\n", max);
for (int i = 1; i <= n; i++) printf(ans[i] ? "?y7m#\n" : "earth\n");
return 0;
}
P2447 SDOI2010 外星千足蟲
公元2089年6月4日,在經歷了17年零3個月的漫長旅行後,格納格魯一號 載人火箭返回艙終於安全著陸。此枚火箭由美國國家航空航天局 nasa 研製發射,行經火星 金星 土衛 六 木衛 二 穀神星 張衡星 等23顆太陽系星球,並最終在小行星 傑森星 探尋到了地外生命。太空飛行員在 傑森星 地表岩層下4...
Luogu2157 SDOI2009 學校食堂
link 給定 n 個學生的口味和忍耐度,若前一道菜的對應的口味是a,這一道為b,則做這道菜所需的時間為 a b a b 而做第一道菜是不需要計算時間的.每個學生可以忍耐忍耐度以下的人在他前面插隊買飯 求最小的做飯時間 n le 1000,b i le 8 令 f 表示第 i 個人前面的狀態是 s ...
luogu3706 SDOI2017 硬幣遊戲
link 硬幣遊戲 對於100分 我們不難想到這個矩陣過大 且沒有用的節點很多我們最後只要n個節點的答案 其他節點的答案可以不要。考慮把沒用的節點的答案壓到一點上。相同的套路 我們設f i 表示經過第i個點的期望次數 由於是到達某個點我們強制停止 所以概率 結果 期望次數。此時結果為1 0 所以這個...