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

CF1749E - Cactus Wall

题目要让我们求一个形似最小割的东西,肯定是转成对偶图上跑最短路解决。

首先把不合法的格子去掉,然后你从左边界走到右边界,只能走斜对角的格子,代价即为路径经过的 . 个数。

跑一遍 01 BFS,记录一下前驱状态以便构造。

#include<cstdio>
#include<algorithm>
#define N 400005
#define M 1600005
using namespace std;const int inf=0x3f3f3f3f;
const int dx[]={-1,1,0,0},dy[]={0,0,-1,1},Dx[]={-1,-1,1,1},Dy[]={-1,1,-1,1};
int T,n,m,d[N],pre[N];
int tot,head[N],nxt[M],ver[M],e[M];
int lt,rt,q[N*4];
char s[N],ss[N];
bool vis[N],ban[N];
int id(int x,int y) {return (x-1)*m+y;}
bool check(int x,int y) {return x>=1&&x<=n&&y>=1&&y<=m;
}
void insert(int x,int y,int z) {ver[++tot]=y,e[tot]=z,nxt[tot]=head[x],head[x]=tot;
}
int main() {scanf("%d",&T);XJX:while(T--) {tot=0;for(int i=1;i<=n*m;i++) {head[i]=vis[i]=ban[i]=pre[i]=0;}scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) {scanf("%s",ss+1);for(int j=1;j<=m;j++) {s[id(i,j)]=ss[j];if(s[id(i,j)]=='#') {for(int k=0;k<4;k++) {int x=i+dx[k],y=j+dy[k];if(check(x,y)) ban[id(x,y)]=1;}}}}for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {if(ban[id(i,j)]) continue;for(int k=0;k<4;k++) {int x=i+Dx[k],y=j+Dy[k];if(check(x,y)&&!ban[id(x,y)]) insert(id(i,j),id(x,y),s[id(x,y)]=='.');}}}fill(d+1,d+n*m+1,inf);lt=N*2+1,rt=N*2;for(int i=1;i<=n;i++) {if(s[id(i,1)]=='.') d[id(i,1)]=1,q[++rt]=id(i,1);else d[id(i,1)]=0,q[--lt]=id(i,1);}while(lt<=rt) {int x=q[lt++]; vis[x]=1;for(int i=head[x];i;i=nxt[i]) {int y=ver[i],z=e[i];if(d[x]+z<d[y]) {d[y]=d[x]+z,pre[y]=x;if(z) q[++rt]=y; else q[--lt]=y;}}}int ans=inf,u=0;for(int i=1;i<=n;i++) {if(d[id(i,m)]<ans) ans=d[id(i,m)],u=id(i,m);}if(ans==inf) {puts("NO"); goto XJX;}while(u) s[u]='#',u=pre[u];puts("YES");for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {putchar(s[id(i,j)]);}puts("");}}return 0;
}
http://www.jsqmd.com/news/171878/

相关文章:

  • [STM32C0] 【STM32C092RC 测评】+ 02 板载按键用作外部中断触发LED闪烁
  • 6个专业AI论文平台推荐,提供改写与降重服务,确保内容自然且合规
  • C#跨平台日志监控最佳实践(专家级方案曝光)
  • 2025大模型九大厂商全景复盘:从OpenAI到DeepSeek,2026十大趋势预判,小白程序员必学指南
  • 2025年耐水腻子粉厂家实力推荐:福州高彪建材,内墙/外墙/耐水腻子粉全品类供应 - 品牌推荐官
  • 多平台环境下C#数据处理为何总卡顿?掌握这4种优化策略让你领先同行
  • Docker打造全能媒体中心Plex
  • YOLOv8模型推理接口封装:构建RESTful API服务
  • 广州旗引科技GEO优化软件迭代机制解读:内外部双循环驱动技术持续进化 - 品牌推荐官优选
  • rust生成器模式
  • YOLOv8模型微调实战:自定义数据集训练全流程讲解
  • docker部署Paperless-ngx应用,搭建本地智能文档管理中心
  • 【中小企业必看】C#多平台权限统一管理:0到1搭建高安全权限中心
  • 超详细PyTorch安装教程GPU版:支持YOLOv8高效运行
  • 【稀缺技术揭秘】:.NET中鲜为人知的内联数组优化技巧,仅1%开发者掌握
  • 2025年产品宣传片制作与拍摄服务推荐榜:上海二月广告有限公司,企业/产品/品牌/城市/个人宣传片全案制作服务厂家精选 - 品牌推荐官
  • YOLOv8训练中断恢复技巧:断点续训配置方法
  • 2025 年国内的安全可靠的矿山施工公司用户口碑实力排行榜 - 朴素的承诺
  • YOLOv8训练过程监控:使用TensorBoard查看指标变化
  • 旗引科技GEO优化系统工作原理与技术逻辑深度解析 - 品牌推荐官优选
  • 【深度学习新浪潮】本地文档总结引擎部署全攻略(一):SOTA方案调研与基础环境搭建
  • 微服务边界的“黄金分割律”:凭什么功能A和B不能放在一个服务里?
  • 震惊!国内188+26家大模型全解析,小白程序员秒变AI大神就靠这份清单!
  • YOLOv8目标检测实战:基于GPU加速的深度学习环境搭建全攻略
  • 工厂短视频运营全链路服务!河南无限动力助制造业月获客1000+ - 朴素的承诺
  • 2025年路面步道板厂家实力推荐:哈尔滨钧楚建材,彩色/防滑/透水/水泥步道板全系供应 - 品牌推荐官
  • C# 集合表达式进阶指南(交错数组优化秘籍)
  • 【重磅系列】架构师技术基石全景图:以「增长中台」贯穿16讲硬核实战
  • HuggingFace镜像网站上的YOLO系列资源全收录
  • 2026年最新版!大模型学习终极指南:4大方向解析,避坑指南与资源合集,助你少走三年弯路!