CF1214D

题意:

给你一个 $ n \times 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;
}

CF1214D的更多相关文章

  1. 网格图必经点+dfs——cf1214D

    先正着走一次把所有可行路径标记出来,然后倒着走两条路径,一条是能向下就向下的路径,另一条能向右就向右. 如果这两条路径相交,那么(1,1)-(n,m)路径上比有个必经点,把这个必经点封上,答案是1,如 ...

随机推荐

  1. Windows 服务 安装后自启动

    [RunInstaller(true)] public partial class ProjectInstaller : System.Configuration.Install.Installer ...

  2. HTTP协议 学习

    HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程.客户端连上web服 ...

  3. ElasticSearch创建动态索引

    ElasticSearch创建动态索引 需求:某实例需要按照月份来维护,所以之前的“写死”索引的方式当然不行了.通过百度和看SpringDataElasticSearch官方文档,最后解决了这个问题. ...

  4. java jdk1.8 API

    里面有 中英文 jdk 1.8 API    还有 jdk1.6 和1.7 英文 API 链接:https://pan.baidu.com/s/1tchABVX7htJCaO3quENP1g提取码:y ...

  5. MySql8.0 安装重要的两步。

    1.去官网下载mysql社区版 windows安装包. 2.在安装包 安装的过程中,有一步就是启动mysql 会失败: 然后修改服务后,再次回到安装界面点击:execute,就会成功了. 先去配置一下 ...

  6. # 机器学习算法总结-第八天(SKlearn中的kmeans/随机森林)

    随机森林 这篇好好看看怎么调参的 我调的最佳参数如下,准确率为0.8428671546929973,细节看上篇文章: alg = RandomForestClassifier(n_estimators ...

  7. vue中用div的contenteditable属性实现v-for遍历,双向数据绑定的动态表格编辑

    1.HTML部分 <tr v-for="(item,index) in customerVisitList2" :key="index"> < ...

  8. go语言学习(基本数据类型)

    值类型: int/uint :根据系统确定是32还是64位.此外还有int8/uint8.int16/uint16.int32/uint32.int64/uint64 byte:字节型,相当于uint ...

  9. 如何使用Metasploit进行汽车安全性测试

    前言 针对汽车的攻击和入侵是当前最前沿的领域和最热门的话题之一.随着自动驾驶汽车技术的发展,在未来这个领域将变得更加重要.作为汽车黑客快速发展的一部分,我最喜欢的黑客工具之一Metasploit也开发 ...

  10. 常用git指令记录

    Generating an SSH key Checking for existing SSH keys Generating a new SSH key and adding it to the s ...