提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |