QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#119788 | #6555. Sets May Be Good | 5ab | WA | 1ms | 3588kb | C++14 | 1.6kb | 2023-07-05 19:27:51 | 2023-07-05 19:27:52 |
Judging History
answer
/* name: 6555
* author: 5ab
* created at: 2023-07-05
*/
#include <iostream>
using namespace std;
#define all(x) (x).begin(), (x).end()
#define ssz(x) (int((x).size()))
using ll = long long;
const int max_n = 1000, mod = 998244353;
int g[max_n][max_n];
bool chk[max_n];
ll qpow(int n)
{
ll ans = 1, mul = 2;
while (n)
{
if (n & 1)
ans = ans * mul % mod;
mul = mul * mul % mod;
n >>= 1;
}
return ans;
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
for (int i = 0, x, y; i < m; i++)
{
cin >> x >> y, x--, y--;
if (x > y) swap(x, y);
g[x][y] = 1;
}
int frc = 0, cf = 0;
for (int i = 0; i < n; i++)
if (!chk[i])
{
int fst = -1;
for (int j = i + 1; j < n; j++)
if (g[i][j])
{
fst = j;
break;
}
if (fst == -1)
{
if (g[i][i] == 1)
{
frc = 0;
break;
}
frc++;
continue;
}
frc++;
chk[fst] = true;
if (g[i][i])
{
cf ^= g[fst][fst];
for (int j = i + 1; j < n; j++)
g[j][j] ^= (j < fst ? g[j][fst] : g[fst][j]);
}
for (int j = i + 1; j < n; j++)
if (j < fst ? g[j][fst] : g[fst][j])
for (int k = fst; k < n; k++)
(j < k ? g[j][k] : g[k][j]) ^= g[i][k];
}
// cerr << frc << endl;
if (frc == 0)
cout << qpow(n - 1);
else if (cf == 0)
cout << (qpow(n - 1) + qpow(frc - 1)) % mod;
else
cout << (qpow(n - 1) - qpow(frc - 1) + mod) % mod;
cout << endl;
return 0;
}
// started coding at: 07-05 18:33:18
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3588kb
input:
5 5 1 2 2 3 3 4 4 5 1 5
output:
16
result:
ok 1 number(s): "16"
Test #2:
score: 0
Accepted
time: 1ms
memory: 3376kb
input:
3 0
output:
8
result:
ok 1 number(s): "8"
Test #3:
score: 0
Accepted
time: 1ms
memory: 3320kb
input:
2 1 1 2
output:
3
result:
ok 1 number(s): "3"
Test #4:
score: 0
Accepted
time: 1ms
memory: 3540kb
input:
4 6 1 2 1 3 1 4 2 3 2 4 3 4
output:
6
result:
ok 1 number(s): "6"
Test #5:
score: 0
Accepted
time: 1ms
memory: 3496kb
input:
1 0
output:
2
result:
ok 1 number(s): "2"
Test #6:
score: 0
Accepted
time: 1ms
memory: 3384kb
input:
4 5 1 2 1 3 1 4 2 3 3 4
output:
8
result:
ok 1 number(s): "8"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
5 3 1 3 1 4 1 5
output:
24
result:
ok 1 number(s): "24"
Test #8:
score: 0
Accepted
time: 1ms
memory: 3424kb
input:
5 0
output:
32
result:
ok 1 number(s): "32"
Test #9:
score: 0
Accepted
time: 1ms
memory: 3400kb
input:
6 3 1 2 3 4 3 6
output:
40
result:
ok 1 number(s): "40"
Test #10:
score: 0
Accepted
time: 1ms
memory: 3420kb
input:
6 0
output:
64
result:
ok 1 number(s): "64"
Test #11:
score: 0
Accepted
time: 1ms
memory: 3512kb
input:
7 3 2 3 3 6 6 7
output:
80
result:
ok 1 number(s): "80"
Test #12:
score: 0
Accepted
time: 0ms
memory: 3404kb
input:
7 0
output:
128
result:
ok 1 number(s): "128"
Test #13:
score: 0
Accepted
time: 0ms
memory: 3464kb
input:
20 30 1 7 1 9 1 12 1 13 2 6 2 17 3 13 4 12 4 15 4 17 6 10 6 17 7 8 7 18 8 14 9 13 10 16 10 17 12 14 13 15 13 16 13 20 14 16 14 18 14 20 15 17 15 18 15 19 15 20 16 17
output:
524288
result:
ok 1 number(s): "524288"
Test #14:
score: -100
Wrong Answer
time: 1ms
memory: 3432kb
input:
20 73 1 4 1 9 1 13 2 6 2 7 2 12 2 14 2 18 2 19 3 6 3 10 3 12 3 14 3 16 3 17 3 18 4 6 4 7 4 11 4 14 4 15 4 18 4 19 5 6 5 7 5 9 5 10 5 12 5 14 5 15 5 17 5 18 5 19 5 20 6 12 6 13 6 15 6 16 6 17 7 9 7 16 7 19 8 11 8 15 8 16 8 20 9 10 9 12 9 17 9 20 10 11 10 12 10 14 10 16 10 17 10 18 11 12 11 20 12 13 1...
output:
523264
result:
wrong answer 1st numbers differ - expected: '524288', found: '523264'