提出 #64829136


ソースコード 拡げる

#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define x first
#define y second

using namespace std;

typedef long long ll;
typedef long double ld;

const ll INF = (ll) 1e18;

int finish[405], cost[405];
ll dp[405][405], help[405][405];

int correct_index(int x, int n)
{
    if (x <= n) return x;
    else return x - n;
}

int main()
{
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    ios_base::sync_with_stdio(0); cin.tie(0);

    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> finish[i];
    for (int i = 1; i <= n; i++) cin >> cost[i];

    for (int len = 1; len <= n; len++)
        for (int lef = 1; lef <= n; lef++)
        {
            int rig = lef + len - 1;
            int L = correct_index(lef, n);
            int R = correct_index(rig, n);    

            dp[L][R] = INF;
            for (int mid = lef; mid < rig; mid++)
            {
                int M1 = correct_index(mid, n);
                int M2 = correct_index(mid + 1, n);
                dp[L][R] = min(dp[L][R], dp[L][M1] + dp[M2][R]);
            }
            if (finish[L] == finish[R])
            {
                if (rig - lef <= 1) help[L][R] = 0;
                else help[L][R] = dp[correct_index(lef + 1, n)][correct_index(rig - 1, n)];

                for (int mid = lef + 1; mid < rig; mid++)
                {
                    int M1 = correct_index(mid - 1, n);
                    int M2 = correct_index(mid, n);
                    int L1 = correct_index(lef + 1, n);

                    if (finish[M2] == finish[L]) help[L][R] = min(help[L][R], dp[L1][M1] + help[M2][R]);       
                }

                dp[L][R] = min(dp[L][R], help[L][R] + (rig - lef + 1) + cost[finish[L]]);
            }
        }

    ll ans = dp[1][n];
    for (int i = 2; i <= n; i++) ans = min(ans, dp[i][i - 1]);
    cout << ans << '\n';
    return 0;
}

提出情報

提出日時
問題 F - Happy Birthday! 3
ユーザ savacska
言語 C++ 20 (gcc 12.2)
得点 550
コード長 1985 Byte
結果 AC
実行時間 141 ms
メモリ 6164 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 550 / 550
結果
AC × 3
AC × 45
セット名 テストケース
Sample sample00.txt, sample01.txt, sample02.txt
All sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt, testcase34.txt, testcase35.txt, testcase36.txt, testcase37.txt, testcase38.txt, testcase39.txt, testcase40.txt, testcase41.txt
ケース名 結果 実行時間 メモリ
sample00.txt AC 1 ms 3596 KiB
sample01.txt AC 1 ms 3524 KiB
sample02.txt AC 1 ms 3548 KiB
testcase00.txt AC 89 ms 6040 KiB
testcase01.txt AC 88 ms 6104 KiB
testcase02.txt AC 90 ms 6024 KiB
testcase03.txt AC 52 ms 5920 KiB
testcase04.txt AC 52 ms 6100 KiB
testcase05.txt AC 54 ms 6132 KiB
testcase06.txt AC 62 ms 5588 KiB
testcase07.txt AC 138 ms 5988 KiB
testcase08.txt AC 34 ms 5184 KiB
testcase09.txt AC 141 ms 6104 KiB
testcase10.txt AC 29 ms 5068 KiB
testcase11.txt AC 141 ms 6012 KiB
testcase12.txt AC 3 ms 4176 KiB
testcase13.txt AC 94 ms 6128 KiB
testcase14.txt AC 18 ms 5016 KiB
testcase15.txt AC 95 ms 5964 KiB
testcase16.txt AC 41 ms 5436 KiB
testcase17.txt AC 94 ms 6024 KiB
testcase18.txt AC 4 ms 4408 KiB
testcase19.txt AC 78 ms 6104 KiB
testcase20.txt AC 2 ms 4076 KiB
testcase21.txt AC 79 ms 6132 KiB
testcase22.txt AC 43 ms 5688 KiB
testcase23.txt AC 78 ms 5924 KiB
testcase24.txt AC 12 ms 4828 KiB
testcase25.txt AC 71 ms 6024 KiB
testcase26.txt AC 17 ms 5116 KiB
testcase27.txt AC 71 ms 5956 KiB
testcase28.txt AC 3 ms 4256 KiB
testcase29.txt AC 71 ms 5996 KiB
testcase30.txt AC 3 ms 4196 KiB
testcase31.txt AC 52 ms 6044 KiB
testcase32.txt AC 23 ms 5372 KiB
testcase33.txt AC 53 ms 5984 KiB
testcase34.txt AC 1 ms 3860 KiB
testcase35.txt AC 52 ms 6164 KiB
testcase36.txt AC 12 ms 5104 KiB
testcase37.txt AC 52 ms 6044 KiB
testcase38.txt AC 22 ms 5304 KiB
testcase39.txt AC 52 ms 6036 KiB
testcase40.txt AC 9 ms 4796 KiB
testcase41.txt AC 52 ms 5956 KiB