[POJ 2397] Spiderman
Link:
Solution:
设$dp[i][j]$表示第$i$步走到$j$高度时经过的最高高度
分向上走和向下走两种方式转移即可
注意记录路径,最后输出时要逆序输出
(逆序输出时可以考虑利用递归方式输出)
Code:
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <algorithm> using namespace std;
const int INF=0x3f3f3f3f;
int T,n,d,dp[][],pre[][]; void print(int cur,int h)
{
if(pre[cur][h]==INF || cur<) return;
print(cur-,pre[cur][h]);
printf("%c",(pre[cur][h]>h)?'D':'U');
} int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
memset(dp,0x3f,sizeof(dp));memset(pre,0x3f,sizeof(pre));
dp[][]=;
for(int i=;i<n;i++)
{
scanf("%d",&d);
for(int j=;j<=;j++)
{
if(dp[i][j]==INF) continue;
if(j+d<= && dp[i+][j+d]>max(dp[i][j],j+d))
dp[i+][j+d]=max(dp[i][j],j+d),pre[i+][j+d]=j;
if(j-d>= && dp[i+][j-d]>dp[i][j])
dp[i+][j-d]=dp[i][j],pre[i+][j-d]=j;
}
}
if(dp[n][]==INF) puts("IMPOSSIBLE");
else print(n,),puts("");
}
return ;
}
[POJ 2397] Spiderman的更多相关文章
- POJ 1925 Spiderman
Spiderman Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5858 Accepted: 1143 Description ...
- POJ 1925 Spiderman(DP)
题目链接 这个破题,好不容易思路清楚了,写的就是过不了..关键部分直接抄的别人的...终于A了,自己写的判断什么的,就是有一组数据过不了. #include <cstdio> #inclu ...
- poj动态规划列表
[1]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 13 ...
- POJ 动态规划题目列表
]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322 ...
- [转] POJ DP问题
列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 13 ...
- POJ动态规划题目列表
列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 13 ...
- DP题目列表/弟屁专题
声明: 1.这份列表不是我原创的,放到这里便于自己浏览和查找题目. ※最近更新:Poj斜率优化题目 1180,2018,3709 列表一:经典题目题号:容易: 1018, 1050, 1083, 10 ...
- poj 题目分类(1)
poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...
- POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)
本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...
随机推荐
- 关于windows10设置环境变量的问题
在设置环境变量的时候往往在网上能找到这样的文章: 1:新建环境变量 2:将新增的环境变量 加到path 变量中: 3.由于有的小伙伴的 系统是 windows10 在点击 编辑path 环境变量的时候 ...
- mac虚拟机上(centos系统)怎样实现共享本机文件
首先加载vboxadditions,可以从https://download.virtualbox.org/virtualbox/下载,记得一定要跟virtualBox版本对应 然后打开virtualb ...
- c++知识点总结--静态与动态联编
静态联编是指在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定,在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于指向对象的指针(或者引用)的类型 动态联 ...
- 破解navicat
每次试用版也真的是烦,注册机试过一次后,又提示注册 果断选择其他方法 官网先下载一个正版 再下patchNavicat.exe 安装完navicat后直接点击patchNavicat 选择navica ...
- C# 枚举相关操作——解析,遍历
我们在开发过程中,有时会让枚举作为数据源来绑定一些下拉列表,这时就需要解析枚举名称和值 . 先看一个枚举的定义: /// <summary> /// 数据库类型 /// </summ ...
- 搭建springmvc项目404,没扫描到包
搭建简单项目完成之后,曾经出现过一个问题 跳转报了404,控制台忘了没留啊... 反正意思就是说我配置有问题,导致没有扫描到注释的类 <context:component-scan base-p ...
- 【CF #313】
B题为啥交换一下搜索顺序就会TLE啊QAQ C题原来要预处理乘法逆元才能过啊QAQ 我沙茶啊我QAQ[还是太弱 嗯A题就是道水题 B题就是字符串Hash+暴力搜 C题就是组合数+容斥原理
- RocketMQ 源码分析 RouteInfoManager(四)
在上一章分析了NamesrvController的构造函数时,会生成一个RouteInfoManager对象,该对象存放着整个消息集群的相关消息,所以这里单独拿出来分析.其实试想一下namesrv的功 ...
- topcoder(BinaryCode)
Problem Statement Let's say you have a binary string such as the following: 011100011 One way t ...
- typedef函数用法
转载自:http://www.cnblogs.com/ggjucheng/archive/2011/12/27/2303238.html 引言 typedef 声明,简称 typedef,为现有类型创 ...