POJ 1661 Help Jimmy
来源:互联网 发布:编程求解一元二次方程 编辑:程序博客网 时间:2024/06/10 18:10
点击打开链接
#include <iostream>#include <algorithm>using namespace std;const int M =21000;const int Inf=1<<30;typedef struct{ int X;int Y;int H;}Node;Node node[M]; int n;bool operator<(const Node a,const Node b){return a.H>b.H;}int main(){int t;cin>>t;while(t--){int x,y,MAX;cin>>n>>x>>y>>MAX;int R[M],L[M];// R[i] 从i号平台右端下落到地面的最短时间node[0].X=node[0].Y=x;node[0].H=y; // 初始位置 for(int i=1;i<=n;i++){cin>>node[i].X>>node[i].Y>>node[i].H;}sort(node,node+n+1);for(int i=n;i>=0;i--) // 逆推 {int j;for(j=i+1;j<=n;j++) // 找 i的左端点下发有plant吗 {if(node[i].X>=node[j].X&&node[i].X<=node[j].Y){break;}}if(j>n){if(node[i].H>MAX){L[i]=Inf;}elseL[i]=node[i].H;}else{int k=node[i].H-node[j].H;if(k>MAX) L[i]=Inf;elseL[i]=min(node[i].X-node[j].X+L[j],node[j].Y-node[i].X+R[j])+k; // dp到J后选择方向 }for(j=i+1;j<=n;j++) // 找 i的右端点下发有plant吗 {if(node[i].Y>=node[j].X&&node[i].Y<=node[j].Y){break;}}if(j>n){if(node[i].H>MAX){R[i]=Inf;}elseR[i]=node[i].H;}else{int k=node[i].H-node[j].H;if(k>MAX) //R[i]=Inf;elseR[i]=min(node[i].Y-node[j].X+L[j],node[j].Y-node[i].Y+R[j])+k; // dp:到J后选择方向 }}int ans=min(L[0],R[0]);cout<<ans<<endl;}return 0;}
0 0
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- poj 1661 Help Jimmy
- poj 1661 Help Jimmy
- poj 1661 Help Jimmy
- POJ 1661 Help Jimmy
- Poj 1661 Help Jimmy
- poj 1661 Help Jimmy
- poj 1661 Help Jimmy
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- poj 1661 help Jimmy
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- poj 1661 Help Jimmy
- POJ 1661 Help Jimmy
- swift Alamofire+ObjectMapper——swift(学习九)
- Oracle查看耗资源SQL
- iOS 开发之Target-action模式
- c3p0连接配置
- kmp单片自动机
- POJ 1661 Help Jimmy
- Xcode 配置 路径
- 各大牛逼网站推荐系统
- Android JNI学习笔记2
- AttributedString
- 秒杀核心设计(减库存部分)-防超卖与高并发
- 转-android沉浸式状态栏:Translucent System Bar 的最佳实践
- WPF获取键盘状态(如WPF组合键)
- activity管理