题解:P10945 Place the Robots

news/2025/2/8 8:44:34/文章来源:https://www.cnblogs.com/bssmessi/p/18703603

P10945 Place the Robots

对于本题,我们都可以想到车的放置(即是放置车使得每个车两两不攻击),此题我们的做法是二分图匹配.

因此本题我们自然而然地就有往这个方面想的思路,但是我们必须要处理墙的这个问题,即使一些机器人同时在一列,但是他们中间却有一堵墙,也不会互相伤害.

所以我们可以将有墙分隔的行或列看成两个独立的个体,我们可以先预处理列,将每列先分块,分别给予每个点(非墙)编号,接着把行分好的块也提供编号与当前点预处理好的列的编号连边即可.

#include<bits/stdc++.h>
using namespace std;
const int N=10010;
int T,m,n,tot1,tot2;
int a[N][N],g[N][N],vis[N],ma[N];
char c[N][N];
bool dfs(int u){for(int i=1;i<=tot1;i++){if(!a[u][i]||vis[i]) continue;vis[i]=1;if(!ma[i]||dfs(ma[i])){ma[i]=u;return 1;}}return 0;
}
int main(){cin>>T;for(int k=1;k<=T;k++){cin>>m>>n;memset(ma,0,sizeof(ma));memset(a,0,sizeof(a));tot1=tot2=0;//多测需要清空数据for(int i=1;i<=m;i++){for(int j=1;j<=n;j++) cin>>c[i][j];}for(int j=1;j<=n;j++){//先将列预处理tot1++;for(int i=1;i<=m;i++){if(c[i][j]!='#'){g[i][j]=tot1;}else tot1++;//如果是墙就把块数增加}}for(int i=1;i<=m;i++){tot2++;for(int j=1;j<=n;j++){if(c[i][j]=='o'){a[tot2][g[i][j]]=1;//读取预处理的列的块数与他连边}else if(c[i][j]=='#') tot2++;}}int ans=0;for(int i=1;i<=tot2;i++){memset(vis,0,sizeof(vis));ans+=dfs(i);}cout<<"Case :"<<k<<"\n"<<ans<<"\n";}return 0;
}```[P10945 Place the Robots](https://www.luogu.com.cn/problem/P10945 "P10945 Place the Robots")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/880688.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RestClient 通过拦截器实现请求加密

今天我发现了一个关于请求加密的有效写法,特此分享给大家。如果你的加密需求是将请求参数也包含在内,通常情况下,我们需要先将请求体转换成 JSON 格式或其他对象类型,再使用字符串的形式进行加密操作。以下是伪代码示例,展示了这一过程的实现方法: String payloadString …

读算法简史:从美索不达米亚到人工智能时代10纠错和加密

通信系统需纠错,汉明码优化校验和;互联网设计缺安全,公钥加密RSA成基石,保障数据传输安全,现广泛用于万维网SSL。1. 纠错 1.1. 像互联网这样的通信系统,被设计成将信息的精确副本从发送方传输到接收方 1.2. 通常,接收到的信号会受到电子噪声的污染1.2.1. 噪声是任何会破…

2025 年java最新 ide 系列激活

2025 ide 激活N6IQ9MTOK0-eyJsaWNlbnNlSWQiOiJONklROU1UT0swIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5Zyw5Z2AIHd3d8K3YWppaHVvwrdjb20iLCJsaWNlbnNlZVR5cGUiOiJQRVJTT05BTCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJl…

INFINI Labs 产品更新 - Easysearch 增强 Rollup 能力,Console 完善 TopN 指标等

INFINI Labs 产品更新发布!此次更新,Easysearch 增强 Rollup 能力,支持更多的聚合方式;Console 完善了 TopN 的指标,支持自定义视图,并内嵌视图模板;Gateway 进行了多处优化以及修复相关 Bug 等等。欢迎下载体验,探索更多可能! INFINI Easysearch v1.10.1 INFINI Easy…

Proj CJI Paper Reading: Detecting language model attacks with perplexity

AbstractTool: PPL Findings:queries with adversarial suffixes have a higher perplexity, 可以利用这一点检测 仅仅使用perplexity filter对mix of prompt types不合适,会带来很高的假阳率Method: 使用Light-GDB根据perplexity和token length filter带有adversarial suffix…

年化收益17倍的红中探底(单针探底)操作策略

作者QQ: 396068801,加Q分享交流通达信红中探底指标。 红中探底条件: # 更新日志:# 2025-2-7 改为红中创10天新低,25日均线向上,尾盘进。# 止盈操作:涨停不卖, 每涨8%就卖一半,直到浮盈达到3倍清仓;高点跌8%清仓。# 止损: 买入后只要跌超6%就清仓止损。# 卖票时间: …

Java基础学习(十五)

Java基础学习(十五):IO流 目录Java基础学习(十五):IO流概念基本流字节输出流 FileOutputStream字节输入流 FileInputStream字符集Java 中的编码和解码字符输入流 FileReader字符输出流 FileWriter缓冲流字节缓冲流字符缓冲流转换流序列化流 和 反序列化流序列化流反序列化…

linux vm tools 问题

转载vmware tools 失效问题解决方式(Ubuntu 22 以及其他系统) - 知乎 今天新装了Kubuntu 以及 Ubuntu 版本均为 22x,一如既往的操作,最后发现VMware tools失效。 尝试输入vmware-user发现又可以了。 具体表现: 1、窗口分辨率可以缩放,无法复制粘贴,无法复制粘贴文件。 2…

【shell脚本】轻松搞定打包与Shell部署

本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作; 1. profiles指定不同环境的配置 通常一套程序分为了很多个部署环境:开发,测试,uat,线上 等,我们要想对这些环境区分配置文件,可以通过两种方式: 1、通过a…

01 HTML详解

一. HTML语言 HTML是超文本标记语言。超文本:文本、图片、声音、视频、表格、链接等等。 标记:由许许多多的标签组成。二. HTML结构 HTML 代码是由 "标签" 构成的。 形如: <body>hello</body>标签名 (body) 放到 < > 中。大部分标签成对出现。…

HTML详解

一. HTML语言 HTML是超文本标记语言。超文本:文本、图片、声音、视频、表格、链接等等。 标记:由许许多多的标签组成。二. HTML结构 HTML 代码是由 "标签" 构成的。 形如: <body>hello</body>标签名 (body) 放到 < > 中。大部分标签成对出现。…