zoukankan      html  css  js  c++  java
  • [简单DP] COJ 1122 Game

    这道题直接模拟即可,DP相当于一个优化,记录下从第i行第j列出发后到达的最终位置,下次需要时直接取,优化前后最坏情况下复杂度都是O(10^6)。

    # include <cstdio>
    # include <cstring>
     
    # define N 1000 + 5
     
    int n, m;
    int cnt[N], ff[N], f[N][N];
    char g[N][N];
     
    int down(int row, int col)
    {
        int &ans = f[row][col];
        if (ans != -1) return ans;
        if (row == n) return ans = col;
        if (g[row][col] == '\\')
        {
            if (col+1>m || g[row][col+1]=='/') return ans = 0;
            return ans = down(row+1, col+1);
        }
        if (g[row][col] == '/')
        {
            if (col-1<1 || g[row][col-1]=='\\') return ans = 0;
            return ans = down(row+1, col-1);
        }
        return ans = down(row+1, col);
    }
     
    void solve(void)
    {
        for (int i = 1; i <= n; ++i)
            memset(f[i]+1, -1, sizeof(int)*m);   
        for (int i = 1; i <= m; ++i)
        {
            ff[i] = down(1, i);
            cnt[i] = 0;
        }
        int k, x;
        scanf("%d", &k);
        while (k--)
        {
            scanf("%d", &x);
            ++cnt[ff[x]];
        }
        printf("%d", cnt[1]);
        for (int i = 2; i <= m; ++i)
            printf(" %d", cnt[i]);
        putchar('\n');
    }
     
    void read_graph(void)
    {
        for (int i = 1; i <= n; ++i)
            scanf("%s", g[i]+1);
    }
     
    int main()
    {
        while (~scanf("%d%d", &n, &m))
        {
            read_graph();
            solve();
        }   
         
        return 0;
    }

    2WA,输出时把 n 当作 m 了,还以为是题目的下落方式没理解对。

    一组数据:

    ------------------------input--------------------------------
    5 5
    _____
    _\\__
    __/__
    _\___
    _____
    5 1 2 3 4 5

    ------------------------output------------------------------
    1 0 1 2 1

  • 相关阅读:
    获取随机数
    性能测试工具
    Oracle 级联删除
    一些shell用法
    英文
    主题:【元宵赏灯】蛇年杭州元宵赏灯攻略(上城区、滨江区、下城区)
    CListCtrl 列表选中项非焦点时也是藍色
    ASCII码表
    杭州市公积金提取及相关知识
    ListBox设置水平滚动条
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2626027.html
Copyright © 2011-2022 走看看