有墙的最大匹配问题

将行和列进行初始化划分    再对左图(r)右图(c)进行匈牙利算法

#include<bits/stdc++.h>
using namespace std;
#define N 105
char mp[N][N];
int mp2[N][N];
int used[N];
int vis[N];
int n,m,r,c;
bool dfs(int  x)
{for(int j=1;j<=c;j++){if(mp2[x][j]&&!used[j]){used[j]=1;if(!vis[j]||dfs(vis[j])){vis[j]=x;return true;}}}return false;
}int find1(void)
{    int ans=0;memset(vis,0,sizeof(vis));for(int i=1;i<=r;i++){memset(used,0,sizeof(used));if(dfs(i))ans++;}return ans;
}int main()
{while(scanf("%d",&n),n){r=0,c=0;int hang[N][N];int lie[N][N];memset(hang,0,sizeof(hang));memset(lie,0,sizeof(lie));for(int i=1;i<=n;i++)scanf("%s",mp[i]+1);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(mp[i][j]=='.'){if(j-1==0||mp[i][j-1]=='X') r++;hang[i][j] = r;}for(int j=1;j<=n;j++)for(int i=1;i<=n;i++)if(mp[i][j]=='.'){if(i-1==0||mp[i-1][j]=='X') c++;lie[i][j] = c;}memset(mp2,0,sizeof(mp2));for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)mp2[ hang[i][j] ][ lie[i][j] ]=1;printf("%d\n",find1());}
}

转载于:https://www.cnblogs.com/bxd123/p/10372202.html

Fire Net HDU1045相关推荐

  1. HDU1045 Fire Net 递归回溯

    点击打开链接 Fire Net Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. HDU-1045 Fire Net(最大碉堡数)

    传送门 Problem Description Suppose that we have a square city with straight streets. A map of a city is ...

  3. fzu 2150 Fire Game 【身手BFS】

    称号:fzu 2150 Fire Game :给出一个m*n的图,'#'表示草坪,' . '表示空地,然后能够选择在随意的两个草坪格子点火.火每 1 s会向周围四个格子扩散,问选择那两个点使得燃烧全部 ...

  4. fire.php,Fire PHP

    项目介绍: Fire PHP 是基于 PHP JavaScript开发的跨平台的Firefox 的扩充套件,即PHP调试插件,可以帮你debug 后端PHP 的程式,其使用的技术跟某些IDE 一样,要 ...

  5. ZOJ1002 Fire Net(非递归版)

    以前用递归的回溯搜索思路做过一次,参见ZOJ1002 Fire Net(递归版),今天想着用非递归的方法试试看,呵呵,比我想象中要难啊,主要还是堆栈里究竟放什么,这一点上思路一直没理清.因此用了整整一 ...

  6. UVA11624 Fire!(bfs)

    相信大家已经读过题目了,我就搬一下洛谷的翻译: 题目大意 你的任务是帮助Joe走出一个大火蔓延的迷宫.Joe每分钟可以走到上下左右4个方向的相邻格子之一,而所有着火的格子都会四周蔓延(即如果某个空格子 ...

  7. J - Fire! UVA - 11624

    J - Fire! UVA - 11624 题意:火每次能烧到上下左右,人碰到非墙的边界则逃火成功,求最短的逃离时间. 由于bfs每个位置最多入队出队一次,所以复杂度为 1e6 一发bfs直接TLE, ...

  8. 1709: Fire or Retreat(zzuli)

    水题,哎,可是第一次是因为编译错了,vs不知咋了,无奈: 后面几次又因为类型用了int错了,痛苦: 题目描述 在与科技水平远胜于我们的外星人的战斗最后,我们能够用来对外星装甲造成伤害的武器只剩下了-- ...

  9. xmpp 服务器配置 open fire for windows 及 spark 测试

    xmpp 服务器配置 open fire for windows 此文章为 XMPP windows服务器配置,使用的是 open fire 3.9.1.exe 1: 下载 open fire ope ...

最新文章

  1. 全球最大最干净的人脸公开训练集!格灵深瞳发布Glint360K
  2. web page web form php,Web Pages Razor
  3. 在VS2017中用c#编写程序执行python遇到中文不能处理出现乱码的情况
  4. Linux下命令行安装weblogic10.3.6
  5. python 生成数组1:1:20_英特尔“演化算法”新框架:29个Python代码块,自动生成新算法...
  6. 【100题】第三十四 实现一个队列
  7. XP下安装装SQL2000企业版本
  8. 数据挖掘:银行评分卡制作——数据分箱、WOE、IV的意义
  9. 装机——2021年底装机推荐,附9000元DIY介绍
  10. 苹果cmsv10黑色炫酷自适应在线视频网站简约模板源码
  11. AM3352时钟系统分析
  12. 暮拾晨花,回望流年——我的2016
  13. asp车衣太阳膜改色膜电子质保卡保修卡实现原理
  14. 区块链对于相关流程和环节的联系,让元宇宙不再是虚无缥缈的概念
  15. Docker学习之docker重启参数--restart=always的作用
  16. python受益股_Python 金融: 看看 A股区块链板块
  17. Appium UI自动化的那些梗
  18. excel函数应用:如何写出IF函数多级嵌套公式
  19. 北方工业大学计算机考研资料汇总
  20. knife4j:快速入门

热门文章

  1. Java经典面试题整理及答案详解(五)
  2. 为什么说 Flink + AI 值得期待?
  3. 站在巨人肩膀上的意思就是拒绝重复造轮子,分享12个常见的js插件
  4. 一个用理性设计的搞笑游戏
  5. 崩坏3日记:戴尔超限专武天天出,我们的快乐变为刷题式重复养成
  6. 零基础学Python(第十七章 模块import)
  7. 几种常见的RAID形式
  8. Oracle 分区表(一)
  9. linux下mysql安装笔记
  10. 运维记录 - 业务日志清理功能