《动态规划》递推,递归,HelpJimmy(知道动态规划是什么,解决那种问题,有些逻辑不太好想)
https://www.jianshu.com/p/7799f6ede3f2



















/* 记忆递归的程序 */ #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define MAX_N 1000 #define INFINITE 1000000 int t, n, x, y, maxHeight; struct Platform { int Lx, Rx, h; bool operator<(const Platform &p2) const { return h > p2.h; } }; Platform platForms[MAX_N + 10]; int leftMinTime[MAX_N + 10]; int rightMinTime[MAX_N + 10]; int L[MAX_N + 10]; int MinTime(int I, bool bLeft) { int y = platForms[I].h; int x; if (bLeft) x = platForms[I].Lx; else x = platForms[I].Rx; int i; for (i = I + 1; i <= n; i++) { // make sure the downstairs is effective if (platForms[i].Lx <= x && platForms[i].Rx >= x) break; } if (i <= n) { if (y - platForms[i].h > maxHeight) return INFINITE; } else// why else is here? { if (y > maxHeight) return INFINITE; else return y; } int nLeftTime = y - platForms[i].h + x - platForms[i].Lx; int nRightTime = y - platForms[i].h + platForms[i].Rx -x; if (leftMinTime[i] == -1) leftMinTime[i] = MinTime(i, true); if (L[i] == -1) { L[i] = MinTime(i, false); } nLeftTime += leftMinTime[i]; nRightTime += L[i]; if (nLeftTime < nRightTime) return nLeftTime; return nRightTime; } int main() { scanf_s("%d", &t); for (int i = 0; i < t; i++) { memset(leftMinTime, -1, sizeof(leftMinTime)); memset(L, -1, sizeof(rightMinTime)); scanf_s("%d%d%d%d", &n, &x, &y, &maxHeight); platForms[0].Lx = x; platForms[0].Rx = x; platForms[0].h = y; for (int j = 1; j <= n; j++) scanf_s("%d%d%d", &platForms[j].Lx, &platForms[j].Rx, &platForms[j].h); sort(platForms, platForms + n + 1); printf("%d\n", MinTime(0, true)); } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2018-11-22 Python, pandas: how to sort dataframe by index// Merge two dataframes by index