当前位置: 首页 > 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;
}

如何表示斜行:

 

相关文章:

  • 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文件处理全攻略:安全上传下载与异常处理实战
  • 龙岗做网站的公司/中国唯一没有疫情的地方
  • 怎么做会员自动售卡网站/百度网络优化推广公司
  • 二级网站建设/南阳网站优化公司
  • 做个人网站需要哪些/营销推广计划书
  • 怀化网站优化/百度指数的特点
  • 荣誉章标志做网站/接广告推广的平台