CF38E 题解
思路
首先按照位置从小到大排序。
设 表示对于前 个弹珠,最后一个停止的弹珠。当 时,那么 号弹珠要滚到 号弹珠的位置,耗费 ,;当 时,则直接把它停住,。
代码
# include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;
const ll inf = 1e18;
int n, tot;
ll dp[3005][3005], minx = inf;
pll a[3005];
bool cmp (const pll& a, const pll& b) {
return a.first != b.first ? a.first < b.first : a.second < b.second;
}
int main () {
ios::sync_with_stdio (0);
cin.tie (0);
cout.tie (0);
cin >> n;
for (int i = 0; i < n; ++ i)
cin >> a[i].first >> a[i].second;
sort (a, a + n, cmp);
dp[0][0] = a[0].second;
for (int i = 1; i < n; ++ i) {
dp[i][i] = inf;
for (int j = 0; j < i; ++ j)
dp[i][j] = dp[i - 1][j] + a[i].first - a[j].first, dp[i][i] = min (dp[i][i], dp[i - 1][j]);
dp[i][i] += a[i].second;
}
for (int i = 0; i < n; ++ i)
minx = min (minx, dp[n - 1][i]);
cout << minx;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端