洛谷 P3842 [TJOI2007]线段
题目传送门
f[i][1/0]表示到第i列左右端点的最短路程长度
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; int n,l[20001],r[20001],f[20001][2]; inline int min(int a,int b) { if(a < b) return a; return b; } int main() { scanf("%d",&n); for(int i = 1;i <= n; i++) scanf("%d%d",&l[i],&r[i]); f[1][1] = r[1] - 1; f[1][0] = r[1] - 1 + r[1] - l[1]; for(int i = 2;i <= n; i++) { int u = abs(r[i] - l[i]) + 1; f[i][1] = min(f[i-1][1] + abs(r[i-1] - l[i]),f[i-1][0] + abs(l[i-1] - l[i])) + u; f[i][0] = min(f[i-1][1] + abs(r[i-1] - r[i]),f[i-1][0] + abs(l[i-1] - r[i])) + u; } printf("%d",min(f[n][1] + abs(n - r[n]),f[n][0] + abs(n - l[n]))); return 0; }
分类:
动态规划DP
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程