Luogu2447 SDOI2010 外星千足蟲

2022-08-13 22:21:13 字數 1236 閱讀 2503

題目藍鏈

有\(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 所以這個...