#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=40+9;
int n,m;
char a[maxn][maxn];
struct
{
int to,next;
}e[maxn*10*4];
int head[maxn*10],lon;
void edgeini()
{
memset(head,-1,sizeof(head));
lon=-1;
}
void edgemake(int from,int to)
{
e[++lon].to=to;
e[lon].next=head[from];
head[from]=lon;
}
int mat[maxn*10],vist[maxn*10];
bool work(int u)
{
// cout<<u<<endl;
vist[u]=1;
for(int k=head[u];k!=-1;k=e[k].next)
{
int v=e[k].to;
if(mat[v]==-1)
{
mat[v]=u;
return true;
}
}
for(int k=head[u];k!=-1;k=e[k].next)
{
int v=e[k].to;
if(vist[mat[v]]) continue;
if(work(mat[v]))
{
mat[v]=u;
return true;
}
}
return false;
}
int solve()
{
int ret=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if((i+j)%2==0)
{
memset(vist,0,sizeof(vist));
ret+=work(i*m-m+j);
}
// cout<<i*m-m+j<<endl;
}
return(ret);
}
int main()
{
// freopen("in.txt","r",stdin);
int tcase;
scanf("%d",&tcase);
while(tcase--)
{
edgeini();
memset(mat,-1,sizeof(mat));
memset(a,0,sizeof(a));
int ans=0;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%s",&a[i][1]);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]=='*')
{
ans++;
if(a[i+1][j]=='*')
edgemake(i*m-m+j,i*m+j);
if(a[i-1][j]=='*')
edgemake(i*m-m+j,i*m-m-m+j);
if(a[i][j+1]=='*')
edgemake(i*m-m+j,i*m-m+j+1);
if(a[i][j-1]=='*')
edgemake(i*m-m+j,i*m-m+j-1);
}
int ret=solve();
printf("%d\n",ans-ret);
}
return 0;
}
相关推荐
SAP EWM 内向交货流程(一)
本文介绍了SAP EWM系统中内向交货单的基本配置与操作流程。
poj3020[无向图最小边匹配]
Antenna Placement Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4461 Accepted: 2194 Description The Global Aerial Research Centre has been allotted the
ESP32实战:破解校园网WPA2-Enterprise认证的完整指南
本文详细介绍了如何使用ESP32开发板破解校园网WPA2-Enterprise认证的完整指南。通过硬件准备、环境搭建、核心代码实现及常见问题排查,帮助开发者解决企业级WiFi连接难题,特别适用于校园网环境下的物联网设备开发。
[最小路径覆盖、二分图最大匹配]Pku3020--Antenna Placement
http://acm.pku.edu.cn/JudgeOnline/problem?id=3020 Antenna PlacementTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2319 Accepted: 1082Description
ROS牛耕法全覆盖规划:从算法原理到清洁机器人实战解析
本文深入解析ROS牛耕法全覆盖规划算法在清洁机器人中的应用,从算法原理到实战优化技巧全面覆盖。详细介绍了地图预处理、区域分解和路径优化等关键步骤,并分享实际案例中的解决方案,帮助开发者提升机器人清扫效率和覆盖率。
人大金仓V8R3企业版License更新全攻略:从查看到重启一步到位
本文详细解析了人大金仓V8R3企业版License更新的完整运维流程,涵盖从诊断当前授权状态、获取与验证新文件、精准定位旧文件路径,到安全替换文件及服务重启验证的全过程。重点针对更新流程中常见的版本匹配、文件定位、权限与服务重启等关键环节提供了实战解决方案和避坑指南,帮助运维人员高效、平稳地完成授权续期。
poj3020 Antenna Placement
Antenna Placement Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8605 Accepted: 4263 Description The Global Aerial Research Centre has been allotted the
手把手教你学simulink(26.8)--控制算法场景示例:基于强化学习的无人机姿态稳定控制系统
首先,我们需要定义无人机的姿态稳定控制环境。环境包括无人机的状态(姿态角、角速度等)和动作(电机转速)。我们还需要定义奖励函数,用于评估控制器的表现。matlab深色版本% 定义环境% 定义状态空间% 12个状态变量% 定义动作空间% 电机转速范围奖励函数用于评估控制器的表现。我们可以根据无人机的姿态误差、角速度误差以及控制输入的变化率来设计奖励函数。具体来说,当无人机的姿态接近设定值时,给予正奖励;当姿态误差较大或控制输入变化剧烈时,给予负奖励。matlab深色版本。
POJ 3020 Antenna Placement
题意: 一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市。 问至少放置多少个基站才能使得所有的城市都覆盖无线? 思路: 二分图难的不是它的代码多难,而是它该怎么建立。像本题,初看好像与二分图无关,但是我们稍微转化一下,就发现,这就是一个二分图的问题了 首先,我们可以从第一个*,也就是城市开始标记。例如: *** 标记为...
前拉后推计划逻辑适用于哪些行业和企业规模?
《前拉后推计划逻辑的行业适用性分析》摘要:前拉后推计划逻辑(需求端后推锚定交付、供应端前拉匹配资源)最适用于需求波动大且具规模效益的行业,包括家具制造(定制化需求+批量运输)、机械装备(非标设备+部件采购)、消费电子(短周期产品+核心部件备货)及汽车配套(交期绑定+批量生产)等领域。该模式要求企业具备:1)独立计划部门;2)ERP/MES等信息系统;3)资源冗余能力,故更适配中型(1-10亿营收)和大型企业(10亿+)。小型企业需简化应用,仅聚焦关键环节。不适配需求稳定(如快消品)、无规模效益或短周期生产的
模型可解释性分析:基于SHAP的深度探索
SHAP模型可解释性分析摘要 本文系统性地介绍了SHAP(SHapley Additive exPlanations)方法在机器学习模型可解释性分析中的应用。SHAP基于博弈论的Shapley值理论,为特征重要性评估提供了统一框架。文章详细阐述了四种核心算法:Kernel SHAP(模型无关方法)、Tree SHAP(针对树模型的高效算法)、Deep SHAP(适用于深度学习)和Linear SHAP(线性模型专用)。通过Python实现展示了从数据准备到SHAP分析的全流程,包括摘要图、依赖图等可视化技术
POJ 3020 Antenna Placement(二分图匹配)
POJ 3020 Antenna Placement 题目链接 题意:给定一个地图,'*'的地方要被覆盖上,每次可以用1 x 2的矩形去覆盖,问最少用几个能覆盖 思路:二分图匹配求最大独立集,相邻*之间连边,然后求最大独立集即可 看这数据范围,用轮廓线dp应该也能搞 代码: #include #include #include #include using
手把手教你学Simulink实例--基于Simulink的电力电子系统电池管理系统(BMS)设计与仿真实例
本文详细介绍了基于Simulink的电池管理系统(BMS)设计与仿真全过程。首先阐述了BMS在安全防护、寿命延长和性能优化方面的必要性,分析了新能源汽车、光伏储能等典型应用场景的技术指标要求。接着详细讲解了Thevenin等效电路和多电平电池模型构建方法,并给出SOC估算、故障诊断等核心算法的MATLAB实现代码。通过设计正常充放电、过充保护等多场景仿真测试,验证了系统在SOC跟踪精度(误差<1.5%)和故障响应速度(<10ms)方面的优异性能。文章还提出了参数优化方法和未来AI融合、数字孪生等发展方向,提
POJ 3020 Antenna Placement(二分图匹配)
Antenna Placement Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 3020 Description The Global Aerial Research Centre has bee
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
POJ 3020 Antenna Placement (二分图匹配)
题意:‘*’代表城市, 'o’代表空地,要用最少的无线电雷达来覆盖所有的城市,雷达只可以建立在城市上,每一个雷达,只可以覆盖它自己所在的位置和与它相邻的一个位置。 题解:二分图匹配 跟这题差不多,一开始思路一样,编号建无向图,求出最少的不重叠覆盖的雷达个数hungary() / 2,然后加上剩余点数就是答案,因为必然剩余点数周围没有其他“*”。 tot - 2 * hungary() / 2就是剩余点数,加上之后等于tot - hungary() / 2。 #define _CRT_SECURE_NO_WA
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
POJ3020——Antenna Placement(二分图最大匹配)
Antenna Placement Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5144 Accepted: 2568 Description The Global Aerial Research Centre has been allotted the task of building the fifth
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
POJ 3020 Antenna Placement【题解报告|二分图匹配】
题目大意 一个矩形中,有N个城市’*’,现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市。问至少放置多少个基站才能使得所有的城市都覆盖无线? 思路分析 在这道题上卡了很久,才接触二分图也没什么好的思路。这道题需要用到一个定理: 二分图最小边覆盖 = 两边顶点数 - 最大匹配数 无向图的最小边覆盖 = (二分图两边顶点数 - 二分图的最大匹配数)/2 下面列举几个二分图问题的常用定理: 定理1:最大匹配数 = 最小点覆盖数(这是 Konig 定理) 定理2:二分图最小边覆
poj 3020 Antenna Placement //二分图匹配,匈牙利算法 (模板)
poj 3020 Antenna Placement //二分图匹配,匈牙利算法 (模板) 题意:给一个地图,其中相邻(上下左右)两个'*'可以匹配,求最多可以匹配几个。 匈牙利算法,复杂度O(n*m) #include<iostream> #include<cstdio> #include<cstring> #include<cmath>...
POJ3020:Antenna Placement(二分图匹配)
Antnna Placement Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11093 Accepted: 5459 题目链接:http://poj.org/problem?id=3020 Description: The Global Aerial Re...
POJ 3020 Antenna Placement(二分图的最大匹配)
POJ 3020 Antenna Placement(二分图的最大匹配) http://poj.org/problem?id=3020 题意: 一个矩形中,有N个城市’*’,其余网格都为'o'表示空地。现在这n个城市都要覆盖无线,若放置一个基站,那么它至多可以覆盖相邻的两个城市。 问至少放置多少个基站才能使得所有的城市都覆盖无线?这个基站的位置可以任意放,不管当
[poj3020]Antenna Placement(二分图最大匹配)
这种上下或左右相邻的问题可以考虑黑白染色法。横纵坐标相加为奇数的染黑,偶数染白,这样每个点和四周的四个点颜色不同,建边后就形成二分图。先假设每个*都要放天线,然后最大匹配显然就是可以省掉的天线数,一减即可得到答案。 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int H=50,W=20,N=210; int t,h,w,cnt,num1,num2,v
专题10 匹配问题 POJ 3020 Antenna Placement(二分图最大匹配)
POJ 3020 Antenna Placement 题意: 给你一个图,里面的 * 表示 站点,要求把它们都连接起来,问最少所需要的antennas(电线)。 一个antennas可以连接两个基站,要相邻。(特别地,也可以连一个空点) 每个基站至少需要1个antenna。 思路: 建立无向图(先对于每个基站连边)。 跑一遍最大匹配。 之后可能还有一些没匹配到的点。那么这些每匹配的点,就ans++。(管他连到哪里,直接加一条antenna,即ans++) AC #include <iostr
POJ3020_二分图最大匹配(匈牙利算法变型)_Antenna Placement
原题:http://poj.org/problem?id=3020 题目大意: 有四种天线,分别可以朝四个方向覆盖一个城镇(place of interest)(可以看成一个天线可以覆盖两个城镇),给出一张图,星号代表城镇,空格代表空地,问最少需要多少天线可以覆盖所有的城镇。 思路: node标记点并且给城镇编号,edge标识出城镇与城镇的相邻关系,构建一个无向图。其中,点代表城镇,边代表...
POJ 3020 Antenna Placement (二分图匹配)
题目链接,请点击这里 要使用的定理 关于二分图常用定理 1.最大匹配数 = 最小覆盖数(Konig定理) 2.二分图最小边覆盖 = 顶点数 - 最大匹配数 3.无向图最小边覆盖 = 无向图的最小边覆盖 = (二分图两边顶点数 - 二分图的最大匹配数/2) 至于为什么/2 请看博客https://blog.csdn.net/csyifanZhang/article/details/107081503 思路 先把孤立点城市连城线,变成图,对于图中每一个连通分量,只少用多少边才能将所 有点覆盖,这就是比较典型
POJ 3020 Antenna Placement (二分图匹配)
http://poj.org/problem?id=3020 题意:给你一张0由 * 和 o 组成的图,每次可以选取相邻的两个或一个 * ,问最少几次可以把所有的 * 取完。 因为每次只能取相邻的两个,所以可以建出一个二分图,这样问题就变成了二分图的最小路径覆盖问题,而最小路径覆盖数=节点数-最大匹配数,而这里建的是双向边,所以最大匹配数是匈牙利算法跑出来的结果除以二。 #include...
2398



被折叠的 条评论
为什么被折叠?



