QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#787814 | #6613. Bitwise Exclusive-OR Sequence | Loxilante | RE | 17ms | 10604kb | C++20 | 1.7kb | 2024-11-27 14:44:15 | 2024-11-27 14:44:16 |
Judging History
answer
#define F_C
#include <bits/stdc++.h>
#define rep(i, l, r) for(int i = l; i < r; i++)
#define hrp(i, l, r) for(int i = l; i <= r; i++)
#define rev(i, r, l) for(int i = r; i >= l; i--)
#define int ll
using namespace std;
typedef long long ll;
template<typename tn = int> tn next(void) { tn k; cin>>k; return k; }
#ifndef LOCAL
#define D(...) 0
#endif
const int U = 3e5;
int head[U], nxt[U], to[U], val[U], tot;
int asu[U];
vector<int> cpn;
bool vis[U];
bool dfs(int e)
{
if (vis[e]) return 1;
vis[e] = 1;
for(int i = head[e]; i; i = nxt[i])
{
int y = to[i], z = val[i];
if (vis[y]) { if ((asu[y]^z) != asu[e]) return 0; }
else
{
asu[y] = asu[e]^z;
cpn.push_back(asu[y]);
if (!dfs(y)) return 0;
}
}
return 1;
}
void add(int x, int y, int z)
{
to[++tot] = y; val[tot] = z; nxt[tot] = head[x]; head[x] = tot;
}
signed main(void)
{
#ifdef LOCAL
// freopen("C:\\Users\\Loxil\\Desktop\\IN.txt", "r", stdin);
// freopen("C:\\Users\\Loxil\\Desktop\\OUT.txt", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(0);
int n, m;
cin>>n>>m;
rep(i, 0, m) { int u, v, w; cin>>u>>v>>w; add(u, v, w); add(v, u, w); }
int ans = 0;
hrp(i, 1, n)
{
if (vis[i]) continue;
cpn.clear();
if (!dfs(i)) return cout<<-1<<endl, 0;
rep(b, 0, 30)
{
int cnt1 = 0;
for(auto v: cpn) cnt1 += (v>>b)&1;
ans += (1<<b)*min(cnt1, (int)cpn.size()+1-cnt1);
}
}
cout<<ans<<endl;
return 0;
}
/*
4 2
1 2 3
2 3 6
3:4
2:2
1:1
*/
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 7820kb
input:
3 2 1 2 1 2 3 1
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 0
Accepted
time: 0ms
memory: 7648kb
input:
3 3 1 2 1 2 3 1 1 3 1
output:
-1
result:
ok 1 number(s): "-1"
Test #3:
score: 0
Accepted
time: 1ms
memory: 7664kb
input:
5 5 3 4 12 3 1 20 2 5 16 1 4 24 4 5 19
output:
58
result:
ok 1 number(s): "58"
Test #4:
score: 0
Accepted
time: 17ms
memory: 10424kb
input:
500 124750 1 2 31473 1 3 11597 1 4 6686 1 5 1214 1 6 14442 1 7 1042 1 8 19057 1 9 22648 1 10 24461 1 11 25714 1 12 3976 1 13 31954 1 14 7384 1 15 13988 1 16 28651 1 17 31599 1 18 8786 1 19 27068 1 20 9645 1 21 28281 1 22 11681 1 23 28897 1 24 31916 1 25 10462 1 26 23973 1 27 4615 1 28 5124 1 29 2026...
output:
8041745
result:
ok 1 number(s): "8041745"
Test #5:
score: 0
Accepted
time: 10ms
memory: 10604kb
input:
500 124750 1 2 3902 1 3 9006 1 4 2914 1 5 8753 1 6 2395 1 7 21406 1 8 14552 1 9 25834 1 10 28282 1 11 9684 1 12 11347 1 13 20545 1 14 16324 1 15 16951 1 16 11594 1 17 5035 1 18 17726 1 19 831 1 20 23194 1 21 7693 1 22 6147 1 23 315 1 24 32755 1 25 17078 1 26 11348 1 27 9587 1 28 21015 1 29 881 1 30 ...
output:
7803950
result:
ok 1 number(s): "7803950"
Test #6:
score: -100
Runtime Error
input:
100000 200000 82262 26109 1005476194 43106 86715 475153289 59086 60577 507254441 71498 80384 186530379 99676 3003 289537598 30772 72897 345346447 12686 87447 896623879 12520 27709 26442442 82734 20830 967590473 13380 76164 927495776 25723 55377 89078582 7173 86993 669894679 37790 94846 331905713 365...