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

P1560 学习笔记

搜索水蓝。

题目传送门

拿到这个题目,第一眼就看到一个小玩意在网格中走,这不一眼 dfs 暴搜吗?

直接开搜。

code
/*********************************************************** Author        : dingziyang888* Website       : https://www.luogu.com.cn/problem/* Created Time  :* FileName      :* Warning!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!* 1.MLE?* 2.array size enough?* 3.long long?* 4.overflow long long?* 5.multiple task cleaned?* 6.freopen?* 7.TLE?* *******************************************************/
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <climits>
#include <stack>
#define I using
#define AK namespace
#define IOI std
#define A return
#define C 0
#define Ofile(s) freopen(s".in", "r", stdin), freopen (s".out", "w", stdout)
#define Cfile(s) fclose(stdin), fclose(stdout)
#define fast ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
I AK IOI;using ll = long long;
using uint = unsigned int;
using ull = unsigned long long;
using lb = long double;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using pil = pair<int, ll>;
using pli = pair<ll, int>;constexpr int mod = 998244353;
constexpr int maxn = 2e2 + 5;int ans, n, m, vv;
char c;int dx[4] = {1, 0, -1, 0};// x轴偏移量
int dy[4] = {0, 1, 0, -1};// y轴偏移量
int vis[maxn][maxn], g[maxn][maxn];// vis 记录有没有走过,g 记录障碍物位置stack<pair<int, int> > q;// 放栈里void out(int xx, int yy) {int x = q.top().first, y = q.top().second;while (!q.empty() && x != xx || y != yy) q.pop(), vis[x][y] = 0, x = q.top().first, y = q.top().second;
}//出栈void dfs(int bx, int by, int sm, int dep) {int now = sm;for (int d = 0; d < 4; d++) {int x = bx + dx[d], y = by + dy[d];while (!g[x][y] && !vis[x][y] && x <= n && x > 0 && y <= n && y > 0) { // 是否为障碍物 && 有没有走过 && 有没有出网格q.push(make_pair(x, y));vis[x][y] = 1;now++;x = x + dx[d], y = y + dy[d];}x = x - dx[d], y = y - dy[d];if (x == bx && y == by)continue;ans = max(ans, now);// 更新 ansif (!vis[x + dx[d]][y + dy[d]])dfs(x, y, now, dep + 1);// 偏移量也没走过,直接搜now = sm;out(bx, by);}
}int main() {freopen("std.in", "r", stdin);freopen("std.out", "w", stdout);cin >> n >> m;for (int i = 1; i <= m; i++)cin >> c >> vv, g[vv][c - 'A' + 1] = 1;q.push(make_pair(1, 1));//初始化vis[1][1] = 1;//初始化dfs(1, 1, 1, 1);cout << ans << endl;return 0;
}
http://www.jsqmd.com/news/350810/

相关文章:

  • 2026年精选重庆1*7钢绞线供应商推荐,让你找到靠谱厂家 - 睿易优选
  • Unity场景中2D物体物体屏幕适配
  • 【Unity】【Photon】Fusion2中的延迟补偿机制(Lag Compensation)学习笔记
  • 32.Android系统源码-gRPC实战 - Google高性能RPC框架核心技术
  • 2026年二分量杆式传感器知名品牌排行榜:质量可靠/精度高/用户反馈优质的TOP厂家 - 品牌推荐大师1
  • 全文降AI的5个常见误区,别再踩坑了 - 我要发一区
  • 第5天:场景假设——连接客户与产品的桥梁
  • 33.Android系统源码-LLVM实战 - 现代编译器基础设施核心技术
  • 水性色浆厂家权威榜单:技术实力与市场口碑深度解析 - 深度智识库
  • 毕业季必看:如何用比话降AI一次性搞定论文检测 - 我要发一区
  • Agent Skills 笔记
  • 2026年资产管理系统厂商推荐:资产管理系统主要有哪些平台?五家领先企业深度解析 - 品牌2026
  • Android 清单文件合并冲突?用 Tools 属性一招解决
  • 还没部署OpenClaw?2026年OpenClaw(Clawdbot)秒级部署图文步骤
  • 2026年水性色浆品牌全景分析:十大供应商实力对比与优选推荐 - 深度智识库
  • 2026年主数据拉通与集成服务企业推荐:五大优质主数据管理供应商盘点 - 品牌2026
  • OpenClaw怎么部署?2026年OpenClaw(原Clawdbot)一键部署,手把手教学
  • 2026年修补料源头厂家推荐,主要有哪些知名的修补料砂浆工厂? - 睿易优选
  • 2026年大型集团不动产资产管理系统选型指南:五大资产管理系统公司推荐 - 品牌2026
  • 2026年大型集团资产管理系统软件哪个好?涵盖物业、城投、商业及多业态资产管理系统推荐 - 品牌2026
  • 2026年质量好的色浆/水性色浆TOP品牌厂家排行 - 深度智识库
  • 南充相机回收哪家好?2026年权威榜单揭晓,壹典名品领跑行业 - 深度智识库
  • 从技术到服务:2026护栏网五大推荐厂家,四川鑫朋浩凭什么稳居第一? - 深度智识库
  • 2026年主数据管理哪家好?五大管理驾驶舱与智慧大脑平台优质服务商推荐指南 - 品牌2026
  • 现代C++学习笔记
  • 2026年企业资产管理系统选型指南:五大核心厂商能力全景解析 - 品牌2026
  • 2026年不动产与大型集团资产管理系统选型指南:五大优质服务商解析 - 品牌2026
  • 2026年主数据管理公司怎么选?数据经营分析与经营监控平台选型指南 - 品牌2026
  • 2026年重庆职业学校权威榜单 全景优质院校适配择校指南 覆盖升学 - 深度智识库
  • 为什么全文降AI比局部修改更有效?嘎嘎降AI实测分享 - 我要发一区