Submission #64377726
Source Code Expand
#include <bits/stdc++.h>
#ifdef LOCAL
#include "Debug.h"
#else
#define debug(...) 42
#endif
using namespace std;
const long long oo = 1LL << 60;
int main()
{
int n;
cin >> n;
vector<long long> a(n + 1), s(n + 1);
for (int i = 1; i <= n; i++)
{
cin >> a[i];
s[i] = s[i - 1] ^ a[i];
}
if (n == 1)
{
cout << a[1] << endl;
return 0;
}
vector<vector<long long>> f(n + 2, vector<long long>(n + 2));
for (int i = 1; i <= n; i++)
f[i][i] = oo;
for (int len = 2; len <= n; len++)
for (int i = 1; i + len - 1 <= n; i++)
{
int j = i + len - 1;
long long xorAll = s[j] ^ s[i - 1];
f[i][j] = oo;
for (int k = i + 1; k < j; k++)
{
long long curF = f[i][k] + f[k + 1][j];
if (k % 2 == i % 2)
curF += xorAll;
if (k % 2 != j % 2)
curF += xorAll;
f[i][j] = min(f[i][j], curF);
}
if (len % 2)
{
for (int k = i; k <= j; k += 2)
f[i][j] = min(f[i][j], f[i][k - 1] + f[k + 1][j]);
}
else
{
for (int k = i; k <= j; k++)
if (k % 2 == i % 2)
{
f[i][j] = min(f[i][j], f[i][k - 1] + f[k + 1][j - 1] + xorAll * 2);
f[i][j] = min(f[i][j], f[i][k - 1] + f[k + 2][j] + xorAll * 2);
}
else
{
f[i][j] = min(f[i][j], f[i + 1][k - 1] + f[k + 1][j] + xorAll * 2);
}
}
}
if (n % 2)
f[1][n] += s[n];
cout << f[1][n] << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - XOR Cross Over |
| User | flashmt |
| Language | C++ 20 (gcc 12.2) |
| Score | 700 |
| Code Size | 1575 Byte |
| Status | AC |
| Exec Time | 63 ms |
| Memory | 5640 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 700 / 700 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_case_01.txt, 01_random_case_02.txt, 01_random_case_03.txt, 01_random_case_04.txt, 01_random_case_05.txt, 01_random_case_06.txt, 02_max_case_01.txt, 02_max_case_02.txt, 02_max_case_03.txt, 02_max_case_04.txt, 02_max_case_05.txt, 02_max_case_06.txt, 02_max_case_07.txt, 02_max_case_08.txt, 02_max_case_09.txt, 02_max_case_10.txt, 02_max_case_11.txt, 02_max_case_12.txt, 02_max_case_13.txt, 02_max_case_14.txt, 02_max_case_15.txt, 02_max_case_16.txt, 02_max_case_17.txt, 02_max_case_18.txt, 02_max_case_19.txt, 02_max_case_20.txt, 02_max_case_21.txt, 02_max_case_22.txt, 02_max_case_23.txt, 02_max_case_24.txt, 02_max_case_25.txt, 02_max_case_26.txt, 02_max_case_27.txt, 02_max_case_28.txt, 02_max_case_29.txt, 02_max_case_30.txt, 02_max_case_31.txt, 02_max_case_32.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt, 03_handmade_05.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_01.txt | AC | 1 ms | 3440 KiB |
| 00_sample_02.txt | AC | 1 ms | 3428 KiB |
| 00_sample_03.txt | AC | 1 ms | 3472 KiB |
| 01_random_case_01.txt | AC | 61 ms | 5444 KiB |
| 01_random_case_02.txt | AC | 2 ms | 3500 KiB |
| 01_random_case_03.txt | AC | 27 ms | 4736 KiB |
| 01_random_case_04.txt | AC | 56 ms | 5336 KiB |
| 01_random_case_05.txt | AC | 35 ms | 4908 KiB |
| 01_random_case_06.txt | AC | 61 ms | 5464 KiB |
| 02_max_case_01.txt | AC | 61 ms | 5448 KiB |
| 02_max_case_02.txt | AC | 61 ms | 5460 KiB |
| 02_max_case_03.txt | AC | 63 ms | 5348 KiB |
| 02_max_case_04.txt | AC | 62 ms | 5456 KiB |
| 02_max_case_05.txt | AC | 61 ms | 5448 KiB |
| 02_max_case_06.txt | AC | 61 ms | 5524 KiB |
| 02_max_case_07.txt | AC | 61 ms | 5444 KiB |
| 02_max_case_08.txt | AC | 61 ms | 5444 KiB |
| 02_max_case_09.txt | AC | 61 ms | 5628 KiB |
| 02_max_case_10.txt | AC | 61 ms | 5444 KiB |
| 02_max_case_11.txt | AC | 61 ms | 5556 KiB |
| 02_max_case_12.txt | AC | 63 ms | 5436 KiB |
| 02_max_case_13.txt | AC | 62 ms | 5636 KiB |
| 02_max_case_14.txt | AC | 62 ms | 5476 KiB |
| 02_max_case_15.txt | AC | 63 ms | 5420 KiB |
| 02_max_case_16.txt | AC | 61 ms | 5360 KiB |
| 02_max_case_17.txt | AC | 61 ms | 5528 KiB |
| 02_max_case_18.txt | AC | 61 ms | 5436 KiB |
| 02_max_case_19.txt | AC | 61 ms | 5460 KiB |
| 02_max_case_20.txt | AC | 63 ms | 5464 KiB |
| 02_max_case_21.txt | AC | 62 ms | 5636 KiB |
| 02_max_case_22.txt | AC | 61 ms | 5532 KiB |
| 02_max_case_23.txt | AC | 62 ms | 5460 KiB |
| 02_max_case_24.txt | AC | 62 ms | 5556 KiB |
| 02_max_case_25.txt | AC | 62 ms | 5604 KiB |
| 02_max_case_26.txt | AC | 61 ms | 5528 KiB |
| 02_max_case_27.txt | AC | 62 ms | 5468 KiB |
| 02_max_case_28.txt | AC | 61 ms | 5432 KiB |
| 02_max_case_29.txt | AC | 61 ms | 5476 KiB |
| 02_max_case_30.txt | AC | 62 ms | 5640 KiB |
| 02_max_case_31.txt | AC | 62 ms | 5472 KiB |
| 02_max_case_32.txt | AC | 61 ms | 5476 KiB |
| 03_handmade_01.txt | AC | 1 ms | 3528 KiB |
| 03_handmade_02.txt | AC | 1 ms | 3432 KiB |
| 03_handmade_03.txt | AC | 63 ms | 5464 KiB |
| 03_handmade_04.txt | AC | 63 ms | 5440 KiB |
| 03_handmade_05.txt | AC | 61 ms | 5472 KiB |