Submission #1794861
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
using int64 = long long;
using vi = vector< int >;
using vii = vector< vi >;
const int mod = 1e9 + 7;
struct UnionFind
{
vector< int > data;
UnionFind(int sz)
{
data.assign(sz, -1);
}
bool unite(int x, int y)
{
x = find(x), y = find(y);
if(x == y) return (false);
if(data[x] > data[y]) swap(x, y);
data[x] += data[y];
data[y] = x;
return (true);
}
int find(int k)
{
if(data[k] < 0) return (k);
return (data[k] = find(data[k]));
}
int size(int k)
{
return (-data[find(k)]);
}
};
int main()
{
int N, M;
vector< pair< int, int > > g[400000];
int64 fact[500001];
bool deg[400000] = {};
fact[0] = 1;
for(int i = 1; i < 500001; i++) {
fact[i] = fact[i - 1] * 2 % mod;
}
scanf("%d %d", &N, &M);
UnionFind uf(M);
int ret = 0;
for(int i = 0; i < M; i++) {
int a, b;
scanf("%d %d", &a, &b);
--a, --b;
if(uf.unite(a, b)) {
g[a].emplace_back(b, i);
g[b].emplace_back(a, i);
}
deg[a] ^= 1;
deg[b] ^= 1;
(ret += fact[i + 1]) %= mod;
}
function< bool(int, int) > dfs = [&](int idx, int par)
{
bool flag = deg[idx];
for(auto &e : g[idx]) {
if(e.first == par) continue;
bool f = dfs(e.first, idx);
if(f & 1) (ret += fact[e.second + 1]) %= mod;
flag ^= f;
}
return (flag);
};
dfs(0, -1);
printf("%d\n", ret);
}
Submission Info
Submission Time |
|
Task |
C - ドライブ |
User |
ei13333 |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1523 Byte |
Status |
WA |
Exec Time |
312 ms |
Memory |
42496 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:53:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &N, &M);
^
./Main.cpp:59:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &a, &b);
^
Judge Result
Set Name |
Sample |
Subtask1 |
Subtask2 |
Score / Max Score |
0 / 0 |
0 / 40 |
0 / 70 |
Status |
|
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt |
Subtask1 |
sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt |
Subtask2 |
sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
8 ms |
13952 KB |
sample_02.txt |
AC |
7 ms |
13952 KB |
subtask1_01.txt |
WA |
8 ms |
13952 KB |
subtask1_02.txt |
AC |
8 ms |
13952 KB |
subtask1_03.txt |
AC |
8 ms |
13952 KB |
subtask1_04.txt |
AC |
9 ms |
14080 KB |
subtask1_05.txt |
AC |
9 ms |
13952 KB |
subtask1_06.txt |
AC |
9 ms |
13952 KB |
subtask1_07.txt |
AC |
8 ms |
13952 KB |
subtask1_08.txt |
AC |
9 ms |
13952 KB |
subtask1_09.txt |
AC |
9 ms |
13952 KB |
subtask1_10.txt |
WA |
9 ms |
14080 KB |
subtask1_11.txt |
WA |
8 ms |
14080 KB |
subtask1_12.txt |
WA |
8 ms |
14080 KB |
subtask1_13.txt |
WA |
8 ms |
14080 KB |
subtask1_14.txt |
AC |
8 ms |
13952 KB |
subtask1_15.txt |
AC |
8 ms |
13952 KB |
subtask1_16.txt |
AC |
8 ms |
14080 KB |
subtask1_17.txt |
AC |
8 ms |
13952 KB |
subtask1_18.txt |
AC |
7 ms |
13952 KB |
subtask2_01.txt |
AC |
279 ms |
30464 KB |
subtask2_02.txt |
AC |
289 ms |
30592 KB |
subtask2_03.txt |
AC |
223 ms |
32236 KB |
subtask2_04.txt |
AC |
293 ms |
29696 KB |
subtask2_05.txt |
WA |
217 ms |
30080 KB |
subtask2_06.txt |
WA |
257 ms |
30464 KB |
subtask2_07.txt |
WA |
159 ms |
31084 KB |
subtask2_08.txt |
WA |
257 ms |
42496 KB |
subtask2_09.txt |
AC |
312 ms |
30720 KB |
subtask2_10.txt |
AC |
53 ms |
17664 KB |
subtask2_11.txt |
AC |
60 ms |
15616 KB |
subtask2_12.txt |
AC |
175 ms |
24308 KB |
subtask2_13.txt |
AC |
255 ms |
27392 KB |
subtask2_14.txt |
AC |
271 ms |
29952 KB |
subtask2_15.txt |
AC |
80 ms |
15872 KB |