动态规划(DP),模拟
题目链接:http://poj.org/problem?id=1088
Memory: 252KTime: 16MSLanguage: C++Result: Accepted
解题报告:
1、lm[i][j]表示maps[i][j]所能到达的最长长度
2、状态转移方程
lm[i][j]=max(maps[i][j]四周的最大lm)+1;
#include <stdio.h>
#include <algorithm>
#include <string.h> using namespace std; #define MAX 105 int row,col;
int maps[MAX][MAX];///图表
int lm[MAX][MAX];///lm[i][j]表示maps[i][j]所能到达的最长长度
int mov[][]={{-,},{,},{,-},{,}}; int DP(int i,int j)///求maps[i][j]所能到达的最长长度
{
if(lm[i][j]!=)
return lm[i][j];
else
{
int maxx=,s;
for(int k=;k<;k++)
{
int tx=i+mov[k][];
int ty=j+mov[k][];
if(tx>=&&tx<row&&ty>=&&ty<col)
{
if(maps[i][j]>maps[tx][ty])
{
s=DP(tx,ty);
if(s>maxx)
maxx=s;
}
}
}
lm[i][j]=maxx+;
return maxx+;
}
}
int main()
{
int MAXLEN=;
scanf("%d%d",&row,&col);
for(int i=;i<row;i++)
{
for(int j=;j<col;j++)
scanf("%d",&maps[i][j]);
}
memset(lm,,sizeof(lm));
for(int i=;i<row;i++)
{
for(int j=;j<col;j++)
{
lm[i][j]=DP(i,j);
if(MAXLEN<lm[i][j])
MAXLEN=lm[i][j];
}
}
printf("%d\n",MAXLEN);
return ;
}
动态规划(DP),模拟的更多相关文章
- 动态规划dp
一.概念:动态规划dp:是一种分阶段求解决策问题的数学思想. 总结起来就一句话:大事化小,小事化了 二.例子 1.走台阶问题 F(10):10级台阶的走法数量 所以:F(10)=F(9)+F(8) F ...
- 算法-动态规划DP小记
算法-动态规划DP小记 动态规划算法是一种比较灵活的算法,针对具体的问题要具体分析,其宗旨就是要找出要解决问题的状态,然后逆向转化为求解子问题,最终回到已知的初始态,然后再顺序累计各个子问题的解从而得 ...
- hdu5009 Paint Pearls (DP+模拟链表)
http://acm.hdu.edu.cn/showproblem.php?pid=5009 2014网络赛 西安 比较难的题 Paint Pearls Time Limit: 4000/2000 M ...
- 【简单dp+模拟】hdu-5375(2015多校#7-1007)
给你一个二进制数,,每一位有一个权值,让你转格雷码,求所对应格雷码位为1的权值的和:二进制位中的某些位为?,你需要给这些问号赋值使得到的和最大. 首先你得知道二进制转格雷码的规则,即格雷码位为[二进制 ...
- 【转】动态规划DP
[数据结构与算法] DP 动态规划 介绍 原创 2017年02月13日 00:42:51 最近在看算法导论. DP全称是dynamic programming,这里programming不是编程,是一 ...
- 动态规划DP的优化
写一写要讲什么免得忘记了.DP的优化. 大概围绕着"是什么","有什么用","怎么用"三个方面讲. 主要是<算法竞赛入门经典>里 ...
- 【BZOJ】1622: [Usaco2008 Open]Word Power 名字的能量(dp/-模拟)
http://www.lydsy.com/JudgeOnline/problem.php?id=1622 这题我搜的题解是dp,我也觉得是dp,但是好像比模拟慢啊!!!! 1400ms不科学! 设f[ ...
- hdu 1421:搬寝室(动态规划 DP + 排序)
搬寝室 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- hdu 2059:龟兔赛跑(动态规划 DP)
龟兔赛跑 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissi ...
随机推荐
- Latex技巧
文件.tex 文件打开 error reading 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/jzhao-logs/27226136 ...
- HTML5 Canvas arc()函数
实例 创建一个圆形: var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d") ...
- kafka监控工具kafkaOffsetMoniter的使用
简介 KafkaOffsetMonitor是由Kafka开源社区提供的一款Web管理界面,用来实时监控Kafka的Consumer以及Partition中的Offset,可以在web界面直观的看到每个 ...
- Android activity的回传数据
package com.example.myact3; import android.content.Intent; import android.os.Bundle; import android. ...
- Repeater 时间格式化
Repeater 时间格式化 <%# Eval("AboutDate","{0:yyyy-MM-dd hh:mm:ss}")%> 个人认为最好用 ...
- 夺命雷公狗---Thinkphp----2之快快速搭建TP环境
<?php //定义项目目录 define('APP_PATH','./WEB/'); //开启调试 define('APP_DEBUG',True); //包含thinkphp项目入口文件 r ...
- Ubuntu + CentOS7 搭建tftp Server
基于Ubuntu系统做的tftp服务器,基于CentOS 7都差不多,书写了关键命令,测试过Ubuntu 12.0.4 和CentOS 7环境 1.介绍tftp服务器 TFTP(Trivial ...
- [div+css]竖排菜单
} #box{ width:120px; font-size: 12px; font- ...
- andriod之应用内置浏览器 webview
参考:http://my.eoe.cn/694183/archive/10476.html http://blog.csdn.net/it_ladeng/article/details/8136534 ...
- OpenStack 的windows镜像的开启办法
创建虚拟机 使用我们的管理平台的windows主机创建流程,创建一台主机.在vnc中能看到主机进入到系统中 需要点击按钮sendctrl进入输入密码阶段. 输入我们的镜像的默认密码:5@mdjkw 打 ...