zoukankan      html  css  js  c++  java
  • CF1214D

    CF1214D

    题意:

    给你一个 $ n imes m $ 的矩阵,求最少用多少个障碍,将 $ (1,1) $ 到 $ (n,m) $ 的路径堵死。

    题意:

    因为可以将起点两边堵死,所以答案最多是 $ 2 $ ,所以答案就只有 $ 0,1,2 $ 。
    先两遍DFS抠出既能从 $ (1,1) $ 到达又能到达 $ (n,m) $ 的点,看看每个步数内能到达的点是否只有一个。

    CODE:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    
    using namespace std;
    
    #define LL long long
    #define N 1000010
    
    int n,m,s,ans,f;
    bool vis[N];
    char ch[N];
    
    void dfs(int x) {
        if(ans) return;
        if(x == f) {
            ans++;
            return;
        }
        int l = x / m,r = x % m;
        if(l + 1 < n && vis[(l + 1) * m + r] == 0 && ch[(l + 1) * m + r] != '#') {
            vis[(l + 1) * m + r] = 1;
            dfs((l + 1) * m + r);
        }
        if(ans) return;
        if(r + 1 < m && vis[l * m + r + 1] == 0 && ch[l * m + r + 1] != '#') {
            vis[l * m + r + 1] = 1;
            dfs(l * m + r + 1);
        }
    }
    
    int main() {
        scanf("%d%d",&n,&m);
        for(int i = 0 ; i < n ; i++)
            scanf("%s",ch + i * m);
        f = n * m - 1,ans = 0;
        vis[s] = 1,vis[f] = 0;
        dfs(s);
        if(ans == 0) {
            puts("0");
            return 0;
        }
        vis[s] = 1,vis[f] = 0;
        ans = 0;
        dfs(s);
        if(ans == 0) puts("1");
        else puts("2");
        //system(
        return 0;
    }
    
  • 相关阅读:
    JSP——useBean
    jsp 几种跳转
    jsp MIME
    T-SQL之触发器(下)
    T-SQL之触发器
    T-SQL之存储过程
    T-SQL之游标
    T-SQL之自定义函数
    T-SQL之函数
    T-SQL复习心得(1)变量
  • 原文地址:https://www.cnblogs.com/Repulser/p/11469851.html
Copyright © 2011-2022 走看看