Please sign in first.
Submission #64374423
Source Code Expand
#include <bits/stdc++.h>
#define mp make_pair
#define mt make_tuple
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define forn(i, n) for (int i = 0; i < (int)(n); ++i)
#define for1(i, n) for (int i = 1; i <= (int)(n); ++i)
#define ford(i, n) for (int i = (int)(n) - 1; i >= 0; --i)
#define fore(i, a, b) for (int i = (int)(a); i <= (int)(b); ++i)
using namespace std;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<pii> vpi;
typedef vector<vi> vvi;
typedef long long i64;
typedef vector<i64> vi64;
typedef vector<vi64> vvi64;
typedef pair<i64, i64> pi64;
typedef double ld;
template<class T> bool uin(T &a, T b) { return a > b ? (a = b, true) : false; }
template<class T> bool uax(T &a, T b) { return a < b ? (a = b, true) : false; }
const int maxn = 511;
i64 dp[maxn][maxn];
i64 a[maxn], pa[maxn];
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.precision(10);
cout << fixed;
#ifdef LOCAL_DEFINE
freopen("input.txt", "rt", stdin);
#endif
int n;
cin >> n;
forn(i, n) cin >> a[i];
forn(i, n) pa[i + 1] = pa[i] ^ a[i];
forn(l, n + 1) forn(r, n + 1) dp[l][r] = 1e18;
forn(r, n + 1) ford(l, r) {
if (r - l == 1) {
dp[l][r] = 0;
continue;
}
if ((r - l) & 1) {
fore(m, l + 1, r - 1) uin(dp[l][r], dp[l][m] + dp[m][r]);
} else {
i64 seg = pa[l] ^ pa[r];
fore(m, l + 1, r - 1) uin(dp[l][r], dp[l][m] + dp[m][r] + ((m - l) & 1 ? 2 * seg : 0LL));
}
}
i64 ans = dp[0][n];
if (n & 1) ans += pa[n];
cout << ans << '\n';
#ifdef LOCAL_DEFINE
cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - XOR Cross Over |
| User | endagorion |
| Language | C++ 20 (gcc 12.2) |
| Score | 700 |
| Code Size | 1893 Byte |
| Status | AC |
| Exec Time | 26 ms |
| Memory | 5632 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 | 3520 KiB |
| 00_sample_02.txt | AC | 1 ms | 3472 KiB |
| 00_sample_03.txt | AC | 1 ms | 3488 KiB |
| 01_random_case_01.txt | AC | 25 ms | 5432 KiB |
| 01_random_case_02.txt | AC | 2 ms | 4020 KiB |
| 01_random_case_03.txt | AC | 12 ms | 4964 KiB |
| 01_random_case_04.txt | AC | 23 ms | 5388 KiB |
| 01_random_case_05.txt | AC | 15 ms | 5172 KiB |
| 01_random_case_06.txt | AC | 26 ms | 5508 KiB |
| 02_max_case_01.txt | AC | 25 ms | 5480 KiB |
| 02_max_case_02.txt | AC | 26 ms | 5572 KiB |
| 02_max_case_03.txt | AC | 25 ms | 5436 KiB |
| 02_max_case_04.txt | AC | 25 ms | 5500 KiB |
| 02_max_case_05.txt | AC | 25 ms | 5432 KiB |
| 02_max_case_06.txt | AC | 25 ms | 5408 KiB |
| 02_max_case_07.txt | AC | 23 ms | 5432 KiB |
| 02_max_case_08.txt | AC | 26 ms | 5412 KiB |
| 02_max_case_09.txt | AC | 26 ms | 5508 KiB |
| 02_max_case_10.txt | AC | 25 ms | 5372 KiB |
| 02_max_case_11.txt | AC | 25 ms | 5488 KiB |
| 02_max_case_12.txt | AC | 25 ms | 5408 KiB |
| 02_max_case_13.txt | AC | 25 ms | 5508 KiB |
| 02_max_case_14.txt | AC | 26 ms | 5440 KiB |
| 02_max_case_15.txt | AC | 25 ms | 5504 KiB |
| 02_max_case_16.txt | AC | 25 ms | 5572 KiB |
| 02_max_case_17.txt | AC | 25 ms | 5572 KiB |
| 02_max_case_18.txt | AC | 26 ms | 5576 KiB |
| 02_max_case_19.txt | AC | 25 ms | 5492 KiB |
| 02_max_case_20.txt | AC | 24 ms | 5572 KiB |
| 02_max_case_21.txt | AC | 25 ms | 5572 KiB |
| 02_max_case_22.txt | AC | 26 ms | 5572 KiB |
| 02_max_case_23.txt | AC | 25 ms | 5448 KiB |
| 02_max_case_24.txt | AC | 25 ms | 5488 KiB |
| 02_max_case_25.txt | AC | 23 ms | 5576 KiB |
| 02_max_case_26.txt | AC | 26 ms | 5508 KiB |
| 02_max_case_27.txt | AC | 23 ms | 5512 KiB |
| 02_max_case_28.txt | AC | 25 ms | 5576 KiB |
| 02_max_case_29.txt | AC | 25 ms | 5508 KiB |
| 02_max_case_30.txt | AC | 25 ms | 5492 KiB |
| 02_max_case_31.txt | AC | 24 ms | 5412 KiB |
| 02_max_case_32.txt | AC | 25 ms | 5444 KiB |
| 03_handmade_01.txt | AC | 1 ms | 3444 KiB |
| 03_handmade_02.txt | AC | 1 ms | 3380 KiB |
| 03_handmade_03.txt | AC | 23 ms | 5632 KiB |
| 03_handmade_04.txt | AC | 23 ms | 5376 KiB |
| 03_handmade_05.txt | AC | 23 ms | 5500 KiB |