zoukankan      html  css  js  c++  java
  • UVA 10285 Longest Run on a Snowboard

    UVA_10285

        这个题目可以用记忆化搜索实现,f[i][j]记录的是周边四个点可以深搜到的最大值加1。

        枚举一遍i、j并进行记忆化搜索即可。

    #include<stdio.h>
    #include<string.h>
    #define MAXD 110
    char b[110];
    int N, M, a[MAXD][MAXD], f[MAXD][MAXD], max;
    int dx[] = {-1, 1, 0, 0}, dy[] = {0, 0, -1, 1};
    void init()
    {
    int i, j;
    scanf("%s%d%d", b, &N, &M);
    for(i = 0; i < N; i ++)
    for(j = 0; j < M; j ++)
    scanf("%d", &a[i][j]);
    }
    int dfs(int x, int y)
    {
    int i, j, newx, newy, m, temp;
    if(f[x][y] != -1)
    return f[x][y];
    m = 1;
    for(i = 0; i < 4; i ++)
    {
    newx = x + dx[i];
    newy = y + dy[i];
    if(newx >= 0 && newx < N && newy >= 0 && newy < M && a[newx][newy] > a[x][y])
    {
    temp = dfs(newx, newy);
    if(temp + 1 > m)
    m = temp + 1;
    }
    }
    return f[x][y] = m;
    }
    void solve()
    {
    int i, j, temp;
    memset(f, -1, sizeof(f));
    max = 1;
    for(i = 0; i < N; i ++)
    for(j = 0; j < M; j ++)
    {
    temp = dfs(i, j);
    if(temp > max)
    max = temp;
    }
    printf("%s: %d\n", b, max);
    }
    int main()
    {
    int t;
    scanf("%d", &t);
    while(t --)
    {
    init();
    solve();
    }
    return 0;
    }


  • 相关阅读:
    wampserver服务器离线,无法访问此网站 找不到 项目 的服务器 DNS 地址。
    node.js(一)介绍与安装
    js全局函數
    类和对象的定义
    iframe框架学习
    while和do-while的区别
    html5视频音频
    列表
    html表格的学习
    云课堂数组1
  • 原文地址:https://www.cnblogs.com/staginner/p/2238349.html
Copyright © 2011-2022 走看看