UVa 10285

哇,竟然没超时!看网上有人说是记忆化搜索,其实不太懂是啥。。。感觉我写的就是毫无优化的dfs暴力。。。。。。。

建立一个坐标方向结构体数组,每个节点dfs()往下搜就好了。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define MOD 100000
using namespace std;
const int maxn = ;
struct pos {
int x, y;
};
pos dir[] = { ,,-,,,,,- };
int Map[maxn][maxn];
int vis[maxn][maxn] = { };
int r, c, ans; bool in(int x, int y, int val)
{
if (Map[x][y]<val && !vis[x][y] && x >= && x <= r&&y >= && y <= c) return true;
return false;
} void dfs(int x, int y, int lev, int dep)
{
ans = max(ans, dep);
for (int i = ; i<; i++) {
int nowx=x, nowy=y;
nowx += dir[i].x, nowy += dir[i].y;
if (in(nowx, nowy, lev)) {
vis[nowx][nowy] = ;
int t = dep + ;
dfs(nowx, nowy, Map[nowx][nowy], t);
vis[nowx][nowy] = ;
}
}
return;
} int main()
{
int N;
cin >> N;
char s[];
while (N--)
{
scanf("%s", s);
scanf("%d%d", &r, &c);
memset(vis, , sizeof(vis));
for (int i = ; i <= r; i++)
for (int j = ; j <= c; j++) {
cin >> Map[i][j];
}
ans = ;
for(int i=;i<=r;i++)
for (int j = ; j <= c; j++) {
vis[i][j] = ;
dfs(i, j, Map[i][j], );
vis[i][j] = ;
}
cout << s << ": " << ans << endl;
}
return ;
}

UVa 10285【搜索】的更多相关文章

  1. UVa 10285 Longest Run on a Snowboard - 记忆化搜索

    记忆化搜索,完事... Code /** * UVa * Problem#10285 * Accepted * Time:0ms */ #include<iostream> #includ ...

  2. UVA 10285 Longest Run on a Snowboard(记忆化搜索)

    Problem C Longest Run on a Snowboard Input: standard input Output: standard output Time Limit: 5 sec ...

  3. UVa 10285 Longest Run on a Snowboard【记忆化搜索】

    题意:和最长滑雪路径一样, #include<iostream> #include<cstdio> #include<cstring> #include <c ...

  4. UVA 10285 - Longest Run on a Snowboard (记忆化搜索+dp)

    Longest Run on a Snowboard Input: standard input Output: standard output Time Limit: 5 seconds Memor ...

  5. UVA - 10285 Longest Run on a Snowboard(最长的滑雪路径)(dp---记忆化搜索)

    题意:在一个R*C(R, C<=100)的整数矩阵上找一条高度严格递减的最长路.起点任意,但每次只能沿着上下左右4个方向之一走一格,并且不能走出矩阵外.矩阵中的数均为0~100. 分析:dp[x ...

  6. UVa 10285 - Longest Run on a Snowboard

    称号:给你一个二维矩阵,找到一个点.每一个可以移动到的位置相邻的上下,求最长单调路径. 分析:贪婪,dp.搜索. 这个问题是一个小样本,我们该怎么办. 这里使用贪心算法: 首先.将全部点依照权值排序( ...

  7. 【Uva 10285】Longest Run on a Snowboard

    [Link]: [Description] 在一个r*c的格子上; 求最长的下降路径; [Solution] 记忆化搜索; f[x][y]表示从(x,y)这个格子往下还能走多远; 因为是严格递增,所以 ...

  8. UVA - 10285 Longest Run on a Snowboard (线性DP)

    思路:d[x][y]表示以(x, y)作为起点能得到的最长递减序列,转移方程d[x][y] = max(d[px][py] + 1),此处(px, py)是它的相邻位置并且该位置的值小于(x, y)处 ...

  9. UVa 10285 最长的滑雪路径(DAG上的最长路)

    https://vjudge.net/problem/UVA-10285 题意: 在一个R*C的整数矩阵上找一条高度严格递减的最长路.起点任意,但每次只能沿着上下左右4个方向之一走一格,并且不能走出矩 ...

随机推荐

  1. a标签实现 批量下载

    // 批量下载 download (name, href) { var a = document.createElement('a') var e = document.createEvent('Mo ...

  2. springboot框架实现启动项目执行指定代码

    说明: 当有写代码需要在项目启动时执行的时候(即项目启动完成前),可以使用这个方法. 步骤: 创建一个启动类并在类上打上@Component注解 让这个类实现CommandLineRunner接口 重 ...

  3. 前端(Node.js)(1)-- 初识Node.js

    1.认识 Node.js 诞生.发展.应用现状.生态圈等方面 1.1. 2008年 RyanDahl的目标是创建一个易扩展.适用于现代Web应用通信的服务器平台 1.2.国内外的应用情况 Linked ...

  4. c#的DateTime的各种字符串格式

    今天看到工程里有关DateTime的有关知识,之前了解一些用法,比如怎么获取年月日,当前系统时间等等,但是,感觉还是有好多不知道,于是上网搜罗了一下,找到很多有关知识,现在与大家分享下:     Da ...

  5. python 处理缺失值

  6. codevs1214 线段覆盖

    1214 线段覆盖 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold       题目描述 Description 给定x轴上的N(0<N<100)条线段, ...

  7. 开始使用Apache弗林克和Mapr Streams

    Introduction MapR Ecosystem Package 2.0 (MEP) is coming with some new features related to MapR Strea ...

  8. bzoj2049: [Sdoi2008]Cave 洞穴探测

    bzoj2049: [Sdoi2008]Cave 洞穴探测 给n个点,每次连接两个点或切断一条边,保证是树结构,多次询问两个点是否联通 Lct裸题 //Achen #include<algori ...

  9. QT_获取运行进程所在目录路径_2

    QString getProcessFullPath(const quint64 &processId) { #ifdef Q_OS_WIN // access process path WC ...

  10. 关于502 bad gateway报错的解决办法