当前位置: 首页 > news >正文

DFS每日刷题

目录

P1605 迷宫

P1451 求细胞数量

P1219 [USACO1.5] 八皇后 Checker Challenge


P1605 迷宫

#include <iostream>
using namespace std;
int n, m, t;
int a[20][20];
int startx, starty, endx, endy;
bool vis[20][20];
int res;
int dx[] = {0, 1, 0, -1};
int dy[] = {1, 0, -1, 0};
void dfs(int x, int y)
{if (x == endx && y == endy){res++;return;}for (int i = 0; i < 4; i++){int nx = x + dx[i];int ny = y + dy[i];if (nx >= 1 && ny >= 1 && nx <= n && ny <= m && !vis[nx][ny] && a[nx][ny] != 1){vis[nx][ny] = true;dfs(nx, ny);vis[nx][ny] = false;}}
}
int main()
{cin >> n >> m >> t;cin >> startx >> starty >> endx >> endy;int c, b;a[startx][starty] = 1;for (int i = 1; i <= t; i++){cin >> c >> b;a[c][b] = 1;}dfs(startx, starty);cout << res;return 0;
}

P1451 求细胞数量

#include <iostream>
using namespace std;
int n, m;char s[105][105];
bool vis[105][105];
int dx[] = {0, 0, 1, -1};
int dy[] = {-1, 1, 0, 0};
void dfs(int x, int y, int res)
{vis[x][y] = true;for (int i = 0; i < 4; i++){int nx = x + dx[i];int ny = y + dy[i];if (nx >= 1 && ny >= 1 && nx <= n && ny <= m && !vis[nx][ny] && s[nx][ny] != '0'){vis[nx][ny] = true;dfs(nx, ny, res);}}
}
int main()
{cin >> n >> m;int res = 0;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cin >> s[i][j];}}for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){if (s[i][j] != '0' && !vis[i][j]){dfs(i, j, ++res);}}}cout << res;return 0;
}

P1219 [USACO1.5] 八皇后 Checker Challenge

#include <iostream>
using namespace std;
int n;
bool vish[20];
bool visy[50];
bool visz[50];
int a[20];
int res;
void dfs(int x)
{if (x > n){if (res < 3){for (int i = 1; i <= n; i++){cout << a[i] << " ";}cout << endl;}res++;return;}for (int i = 1; i <= n; i++){if (!vish[i] && !visz[x + i] && !visy[x - i + 1]){visz[x + i] = true;visy[x - i + 1] = true;vish[i] = true;a[x] = i;dfs(x + 1);vish[i] = false;visz[x + i] = false;visy[x - i + 1] = false;a[x] = 0;}}
}
int main()
{cin >> n;dfs(1);cout << res;return 0;
}

如何表示斜行:

 

http://www.dtcms.com/a/225525.html

相关文章:

  • Mac电脑上本地安装 redis并配置开启自启完整流程
  • pikachu通关教程-CSRF
  • 使用langchain实现五种分块策略:语义分块、父文档分块、递归分块、特殊格式、固定长度分块
  • 【论文阅读 | PR 2024 |ICAFusion:迭代交叉注意力引导的多光谱目标检测特征融合】
  • 一天搞懂深度学习--李宏毅教程笔记
  • 财管8-企业价值评估
  • 【位运算】两整数之和(medium)
  • 过滤攻击-聚合数据
  • Spring Boot 全局配置文件优先级
  • “人单酬“理念:财税行业的自我驱动革命
  • CCPC dongbei 2025 F
  • 神经网络-Day42
  • 针对 Harmony-Cordova 性能优化,涵盖原生插件开发、线程管理和资源加载等关键场景
  • Codeforces Round 1028 (Div. 2)(ABC)
  • MMRL: Multi-Modal Representation Learning for Vision-Language Models(多模态表示学习)
  • 【MFC】初识MFC
  • Redis缓存落地总结
  • 2025年计算机领域年度主题:融合创新与技术突破
  • 如何使用 Docker 部署grafana和loki收集vllm日志?
  • Flask文件处理全攻略:安全上传下载与异常处理实战
  • 使用Docker-NVIDIA-GPU开发配置:解决 Docker NVIDIA 运行时错误方法
  • 基于微信小程序的scratch学习系统
  • Redis分布式锁实现指南
  • 软考-数据库系统工程师-程序设计语言知识要点
  • 【Go】2、Go语言实战
  • Rust 学习笔记:自定义构建和发布配置
  • AUTOSAR图解==>AUTOSAR_SWS_DIODriver
  • 【渲染】拆解三国:谋定天下场景渲染技术
  • linux 后记
  • GCC 下载安装