[SDOI 2010]外星千足虫
生活随笔
收集整理的這篇文章主要介紹了
[SDOI 2010]外星千足虫
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
題庫鏈接
給出 \(m\) 個 \(n\) 元的 \(0,1\) 方程,即系數非 \(0\) 即 \(1\) ,方程的結果為奇偶性。
\(1\leq n\leq 1000,1\leq m\leq 2000\)
Solution
類似于 [JLOI 2015]裝備購買 ,維護高斯消元的上三角。
由于方程滿足異或性質,直接用 \(bitset\) 維護即可。
Code
#include <bits/stdc++.h> using namespace std; const int N = 1005;int n, m, tot; string s; bitset<N> A[N];void insert(bitset<N> S) {for (int i = 0; i < n; i++)if (S[i]) {if (A[i].any()) S ^= A[i];else {A[i] = S; ++tot; break; }} } void work() {scanf("%d%d", &n, &m);if (n > m) {puts("Cannot Determine"); return; }for (int i = 1; i <= m; i++) {cin >> s; bitset<N> S(s);cin >> s; if (s[0] == '1') S.flip(n);insert(S); if (tot == n) {printf("%d\n", i); break; }}if (tot < n) {puts("Cannot Determine"); return; }for (int i = n-1; i >= 0; i--)for (int j = i-1; j >= 0; j--)if (A[j][i]) A[j] ^= A[i];for (int i = n-1; i >= 0; i--) puts(A[i][n] ? "?y7M#" : "Earth"); } int main() {work(); return 0; }轉載于:https://www.cnblogs.com/NaVi-Awson/p/8810339.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的[SDOI 2010]外星千足虫的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 园林景观设计计算机制图,园林景观设计平面
- 下一篇: 小百的java安装包——————百度网盘