提出 #17477921
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
ll N; cin >> N;
vector<ll> X(N, 0), Y(N, 0), Z(N, 0);
for (ll i = 0; i < N; i++) {
cin >> X[i] >> Y[i] >> Z[i];
}
ll MAX = (1<<N);
ll INF = 1e18;
vector<ll> dp(MAX, INF);
vector<ll> last(MAX, 0);
ll ans = INF;
dp[0] = 0;
for (ll i = 0; i < MAX; i++) {
if (dp[i] == INF) continue;
for (ll j = 0; j < N; j++) {
if (i & (1<<j)) continue;
if ( (i|1<<j) == MAX - 1) {
ll k = last[i];
ll d = dp[i] + abs(X[j] - X[k]) + abs(Y[j] - Y[k]) + max(Z[j] - Z[k], 0ll);
d += abs(0 - X[j]) + abs(0 - Y[j]) + max(0 - Z[j], 0ll);
ans = min(ans, d);
}
ll k = last[i];
ll d = abs(X[j] - X[k]) + abs(Y[j] - Y[k]) + max(Z[j] - Z[k], 0ll);
if(dp[i|1<<j] > dp[i] + d) {
dp[i|1<<j] = dp[i] + d;
last[i|1<<j] = j;
}
d = abs(0 - X[k]) + abs(0 - Y[k]) + max(0 - Z[k], 0ll);
d += abs(X[j] - 0) + abs(Y[j] - 0) + max(Z[j] - 0, 0ll);
if(dp[i|1<<j] > dp[i] + d) {
dp[i|1<<j] = dp[i] + d;
last[i|1<<j] = j;
}
}
}
cout << ans << '\n';
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Traveling Salesman among Aerial Cities |
| ユーザ | nakaken88 |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 0 |
| コード長 | 1263 Byte |
| 結果 | WA |
| 実行時間 | 33 ms |
| メモリ | 5296 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 0 / 500 | ||||||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| random_01.txt | WA | 33 ms | 5256 KiB |
| random_02.txt | WA | 2 ms | 3552 KiB |
| random_03.txt | WA | 31 ms | 5136 KiB |
| random_04.txt | WA | 28 ms | 5200 KiB |
| random_05.txt | WA | 24 ms | 5128 KiB |
| random_06.txt | WA | 2 ms | 3608 KiB |
| random_07.txt | WA | 31 ms | 5296 KiB |
| random_08.txt | WA | 6 ms | 3552 KiB |
| random_09.txt | WA | 30 ms | 5128 KiB |
| random_10.txt | WA | 2 ms | 3632 KiB |
| random_11.txt | WA | 29 ms | 5180 KiB |
| random_12.txt | WA | 2 ms | 3504 KiB |
| random_13.txt | WA | 28 ms | 5228 KiB |
| random_14.txt | WA | 2 ms | 3436 KiB |
| random_15.txt | WA | 29 ms | 5236 KiB |
| random_16.txt | WA | 4 ms | 3612 KiB |
| random_17.txt | WA | 25 ms | 5176 KiB |
| random_18.txt | WA | 4 ms | 3732 KiB |
| random_19.txt | WA | 26 ms | 5264 KiB |
| random_20.txt | WA | 9 ms | 3548 KiB |
| sample_01.txt | AC | 2 ms | 3608 KiB |
| sample_02.txt | AC | 2 ms | 3604 KiB |
| sample_03.txt | WA | 27 ms | 5296 KiB |