BOJ-2300基地局
必要な知識
に近づく
n
10000、O(n 2)O(n^2)O(n 2)が考えられる.DP[i]
を定義i
2棟目を含む場合の最低料金.コード(C+)
#include <bits/stdc++.h>
#define FIO ios_base::sync_with_stdio(false), cin.tie(),cout.tie();
using namespace std;
int n, dp[10002], y, x;
vector<pair<int, int>> v;
int main() {
FIO;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> x >> y;
v.push_back({ x, abs(y) });
}
sort(v.begin(), v.end());
fill(begin(dp), end(dp), INT_MAX);
dp[0] = 0;
dp[1] = v[0].second * 2;
for (int i = 2; i <= n; i++) {
int height = v[i - 1].second;
for (int j = i - 1; j >= 0; j--) {
height = max(height, v[j].second);
dp[i] = min(dp[i], max(height * 2, v[i - 1].first - v[j].first) + dp[j]);
}
}
cout << dp[n];
return 0;
}
結果
Reference
この問題について(BOJ-2300基地局), 我々は、より多くの情報をここで見つけました https://velog.io/@hschoi1104/BOJ-2300-기지국テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol