提出 #7589145
ソースコード 拡げる
#include <bits/stdc++.h>
#define rep(i, n) for (ll i = 0; i < (n); i++)
#define rep2(i, a, b) for (ll i = (a); i < (b); i++)
typedef uint64_t ull;
typedef int64_t ll;
typedef std::pair<ll, ll> PLL;
using namespace std;
signed main() {
ll N;
cin >> N;
vector<ull> a(N);
ull Z = 0;
rep(i,N){
cin >> a[i];
Z ^= a[i];
}
rep(i,N){
a[i] &= ~Z;
}
//printf("Z = 0x%x\n", Z);
// ここで、青色のxorをX、赤色のxorをY、その他をZとする。
// Zはどのような分割をしても、かならず答えに現れるもの。
// X+Y+Z = a[0] ^ a[1] ^ ... ^ a[n-1]
// X ^ Y = 0 --> X = Y
// なのでa[i]から幾つか選んで、そのxorの合計Xを最大化したい。
// これを吐き出し法でやっていく。
ll pivot = 0;
for (ull bit=(((ull)1) << 63); bit > 0; bit = bit>>1) {
//printf("bit=0x%lx\n", bit);
ll t = -1;
// pivot行を探す
for (ll i=pivot; i<N; i++) {
if ((a[i] & bit) != 0) {
t = i;
break;
}
}
if (t == -1)
continue; // そのbitはスキップ
swap(a[pivot], a[t]);
rep(i,N) {
if (i == pivot)
continue;
if ((a[i] & bit) != 0) {
a[i] ^= a[pivot];
}
}
pivot++;
}
//rep(i,N){
// printf("a[%d]=0x%lx\n", i, a[i]);
//}
ull X = 0;
rep(i,N) {
X ^= a[i];
}
cout << 2*X + Z << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Xor Sum 3 |
| ユーザ | bobuhiro11 |
| 言語 | C++14 (GCC 5.4.1) |
| 得点 | 600 |
| コード長 | 1485 Byte |
| 結果 | AC |
| 実行時間 | 92 ms |
| メモリ | 1024 KiB |
ジャッジ結果
| セット名 | Sample | Subtask1 | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| Subtask1 | sample_01.txt, sample_02.txt, sample_03.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_small_01.txt, sub1_small_02.txt, sub1_small_03.txt, sub1_small_04.txt, sub1_small_05.txt, sub1_small_06.txt, sub1_small_07.txt, sub1_small_08.txt, sub1_small_09.txt, sub1_small_10.txt, sub1_small_11.txt, sub1_small_12.txt, sub1_small_13.txt, sub1_small_14.txt, sub1_small_15.txt, sub1_small_16.txt, sub1_small_17.txt, sub1_small_18.txt, sub1_small_19.txt, sub1_small_20.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample_01.txt | AC | 2 ms | 384 KiB |
| sample_02.txt | AC | 1 ms | 256 KiB |
| sample_03.txt | AC | 1 ms | 256 KiB |
| sub1_01.txt | AC | 28 ms | 512 KiB |
| sub1_02.txt | AC | 33 ms | 640 KiB |
| sub1_03.txt | AC | 13 ms | 384 KiB |
| sub1_04.txt | AC | 52 ms | 896 KiB |
| sub1_05.txt | AC | 75 ms | 1024 KiB |
| sub1_06.txt | AC | 77 ms | 1024 KiB |
| sub1_07.txt | AC | 75 ms | 1024 KiB |
| sub1_08.txt | AC | 75 ms | 1024 KiB |
| sub1_09.txt | AC | 75 ms | 1024 KiB |
| sub1_10.txt | AC | 75 ms | 1024 KiB |
| sub1_11.txt | AC | 73 ms | 1024 KiB |
| sub1_12.txt | AC | 77 ms | 1024 KiB |
| sub1_13.txt | AC | 22 ms | 512 KiB |
| sub1_14.txt | AC | 67 ms | 1024 KiB |
| sub1_15.txt | AC | 83 ms | 1024 KiB |
| sub1_16.txt | AC | 84 ms | 1024 KiB |
| sub1_17.txt | AC | 84 ms | 1024 KiB |
| sub1_18.txt | AC | 85 ms | 1024 KiB |
| sub1_19.txt | AC | 84 ms | 1024 KiB |
| sub1_20.txt | AC | 86 ms | 1024 KiB |
| sub1_21.txt | AC | 80 ms | 1024 KiB |
| sub1_22.txt | AC | 79 ms | 1024 KiB |
| sub1_23.txt | AC | 81 ms | 1024 KiB |
| sub1_24.txt | AC | 79 ms | 1024 KiB |
| sub1_25.txt | AC | 82 ms | 1024 KiB |
| sub1_26.txt | AC | 92 ms | 1024 KiB |
| sub1_27.txt | AC | 92 ms | 1024 KiB |
| sub1_28.txt | AC | 7 ms | 512 KiB |
| sub1_29.txt | AC | 1 ms | 256 KiB |
| sub1_30.txt | AC | 21 ms | 1024 KiB |
| sub1_small_01.txt | AC | 1 ms | 256 KiB |
| sub1_small_02.txt | AC | 1 ms | 256 KiB |
| sub1_small_03.txt | AC | 1 ms | 256 KiB |
| sub1_small_04.txt | AC | 1 ms | 256 KiB |
| sub1_small_05.txt | AC | 1 ms | 256 KiB |
| sub1_small_06.txt | AC | 1 ms | 256 KiB |
| sub1_small_07.txt | AC | 1 ms | 256 KiB |
| sub1_small_08.txt | AC | 1 ms | 256 KiB |
| sub1_small_09.txt | AC | 1 ms | 256 KiB |
| sub1_small_10.txt | AC | 1 ms | 256 KiB |
| sub1_small_11.txt | AC | 1 ms | 256 KiB |
| sub1_small_12.txt | AC | 1 ms | 256 KiB |
| sub1_small_13.txt | AC | 1 ms | 256 KiB |
| sub1_small_14.txt | AC | 1 ms | 256 KiB |
| sub1_small_15.txt | AC | 1 ms | 256 KiB |
| sub1_small_16.txt | AC | 1 ms | 256 KiB |
| sub1_small_17.txt | AC | 1 ms | 256 KiB |
| sub1_small_18.txt | AC | 1 ms | 256 KiB |
| sub1_small_19.txt | AC | 1 ms | 256 KiB |
| sub1_small_20.txt | AC | 1 ms | 256 KiB |