提出 #64374423


ソースコード 拡げる

#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;
}

提出情報

提出日時
問題 A - XOR Cross Over
ユーザ endagorion
言語 C++ 20 (gcc 12.2)
得点 700
コード長 1893 Byte
結果 AC
実行時間 26 ms
メモリ 5632 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 700 / 700
結果
AC × 3
AC × 46
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
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