洛谷P1732 活蹦乱跳的香穗子
来源:互联网 发布:发条橙书评知乎 编辑:程序博客网 时间:2024/06/11 11:51
题目描述
香穗子在田野上调蘑菇!她跳啊跳,发现自己很无聊,于是她想了一个有趣的事情,每个格子最多只能经过1次,且每个格子都有其价值
跳的规则是这样的,香穗子可以向上下左右四个方向跳到相邻的格子,并且她只能往价值更高(这里是严格的大于)的格子跳.
香穗子可以从任意的格子出发,在任意的格子结束,
那么她最多能跳几次?
输入输出格式
输入格式:第一行n,m,表示田野的长和宽
接下来n行,每行m个数,表示该格的价值
输出格式:一个数,表示最多跳得次数
这题挺简单的,主要是记忆化搜索。
模板代码如下:
include<cstdio> //一大堆头文件
#include<iostream>using namespace std;int map[1005][1005]={0}; //存地图的数字int f[1005][1005]; //状态转移数组int fx[]={0,0,1,-1},fy[]={1,-1,0,0}; //简称跑路数组int n,m,ans; //边界and答案bool in(int tx,int ty,int x,int y){ //剪枝函数 if(tx>=0&&ty>=0&&tx<=n&&ty<=m&&map[tx][ty]>map[x][y])return true; //按题目条件来 return false;}int dfs(int x,int y){ //!!!经典记忆化搜索 if(f[x][y]>0)return f[x][y]; for(int i=0;i<4;i++){ //枚举方向 int tx=x+fx[i]; int ty=y+fy[i]; if(in(tx,ty,x,y) )f[x][y]=max(f[x][y],dfs(tx,ty)+1); } return f[x][y];}int main(){ cin>>n>>m; for(int i=0;i<n;i++)for(int j=0;j<m;j++)cin>>map[i][j]; //输入 for(int i=0;i<n;i++)for(int j=0;j<m;j++)ans=max(ans,dfs(i,j)); //枚举每个起始位置 cout<<ans; //输出答案 return 0; //end...}很简单,是不是。
阅读全文
1 0
- 洛谷P1732 活蹦乱跳的香穗子
- 【记忆化搜索】活蹦乱跳的香穗子
- 【动态规划】Problem 1 活蹦乱跳的香穗子
- 【动规递推】聪明伶俐的香穗子
- 【动态规划】聪明伶俐的香穗子
- 【01背包】可爱迷人的香穗子
- 【动态规划】Problem 2 可爱迷人的香穗子
- 【动态规划】Problem 4 聪明伶俐的香穗子
- 【广搜】Cyh和香穗子
- 【水】【动态规划】香穗子系列解题报告
- 【动态规划】【最短路径】Problem 3 Cyh和香穗子
- vijos - P1732能量采集 (状态转移)
- 圆圆的一捆香
- 九月的薄荷香
- 《红楼梦》的香文化
- 洛谷 马的遍历
- 洛谷 Cx的故事
- 浪漫的法国香颂
- ZigBee重要结构及表解释
- 友元函数与友元类
- js函数
- ListView中adapter的getView()复用item原理
- Promise is a promise
- 洛谷P1732 活蹦乱跳的香穗子
- STL 教程
- Arduino智能小车——调速篇
- 在linux下使用tun/tap创建虚拟假网卡
- 游戏开发之NGUI字体集制作
- [Python][小知识][NO.4] wxPython 字体选择对话框(O.O 不知道放到那里就放到这个分类的)
- 好的总在不经意间出现
- python requests发送multipart/form-data编码
- 查看电脑ip地址