CF1214D
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的更多相关文章
- 网格图必经点+dfs——cf1214D
先正着走一次把所有可行路径标记出来,然后倒着走两条路径,一条是能向下就向下的路径,另一条能向右就向右. 如果这两条路径相交,那么(1,1)-(n,m)路径上比有个必经点,把这个必经点封上,答案是1,如 ...
随机推荐
- Java数据结构ArrayList
Java数据结构ArrayList /** * <html> * <body> * <P> Copyright JasonInternational</p&g ...
- Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is prohibited; form ResumeForm needs updating.
django 报错 django.core.exceptions.ImproperlyConfigured: Creating a ModelForm without either the 'fiel ...
- python爬视频实例
例:抓取PhotoShop视频教程 网址http://www.mxiaobei.com/?id=424 import requests import re from bs4 import Beauti ...
- 国际化(i18n)学习
一 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationalization)又称 ...
- openssh升级
转载:(感谢作者) centos7 升级openssh到openssh-8.0p1版本 https://www.cnblogs.com/nmap/p/10779658.html centos 7 op ...
- 建表时表空间的一些参数pctfree initrans maxtrans storage的含义
转自:https://a475334705.iteye.com/blog/2291441 create table X_SMALL_AREA ( idx_id NUMBER ...
- Cryptography -- 密码学
Introduction to Cryptography Cryptography enables you to store sensitive information or transmit it ...
- node-exporter cpu使用率为负数
在prometheus利用公式:100 - (avg by (instance) (irate(node_cpu{instance="xxx", mode="idle&q ...
- Linux 01 Liunx系统简介
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位 ...
- 查看python和NumPy版本和安装路径
记录查看Python和NumPy版本以及路径的几条命令 # 查看Python版本及路径 python -V python -c "import sys;print(sys.executabl ...