题目链接

题目大意:给出一张地图,一个军队要征战整个土地。一块土地只能经过一次,有X的地方不能走,军队只会走R*C个格子,只会向下走,问最少需要多少军队能够征战所有的土地

题解:比较naive的DAG最小路径覆盖,把可行点连边,搞成二分图就好了

我的收获:水啊

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;#define M 2607 int m,n,r,c,cnt;
int lik[M],id[55][55];
bool mp[M][M],vis[M];
char s[55][55];bool hungary(int x)
{for(int i=1;i<=cnt;i++){if(!mp[x][i]||vis[i]) continue;vis[i]=true;if(!lik[i]||hungary(lik[i])) return lik[i]=x;}return false;
}void work()
{int ans=0;for(int i=1;i<=cnt;i++){memset(vis,0,sizeof(vis));if(hungary(i)) ans++;}cout<<cnt-ans<<endl;
}void build()
{int dx[]={r,r,c,c},dy[]={c,-c,r,-r};for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(s[i][j]=='.')for(int k=0;k<4;k++){int fx=i+dx[k],fy=j+dy[k];if(s[fx][fy]=='X'||fx<1||fx>n||fy<1||fy>m) continue;mp[id[i][j]][id[fx][fy]]=1;}
}void init()
{cin>>n>>m>>r>>c;for(int i=1;i<=n;i++){scanf("%s",s[i]+1);for(int j=1;j<=m;j++) if(s[i][j]=='.') id[i][j]=++cnt;//只把可行点建图 }build();
}int main()
{init();work();return 0;
}

2150: 部落战争相关推荐

  1. BZOJ 2150: 部落战争 最大流

    2150: 部落战争 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php? ...

  2. bzoj 2150: 部落战争 (最小路径覆盖)

    2150: 部落战争 Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 879  Solved: 493 [Submit][Status][Discus ...

  3. BZOJ 2150. 部落战争(最小路径覆盖问题)【BZOJ千题计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 刷题就图一乐 题目链接 https://hydro.ac/d/bzoj/p/2150 是 hydro ...

  4. bzoj2150 部落战争 二分图匹配

    题目链接:戳这里 2150: 部落战争 Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 1141  Solved: 631 [Submit][Stat ...

  5. [bzoj2150] 部落战争 二分图

    2150: 部落战争 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 951 Solved: 533 [Submit][Status][Discuss] ...

  6. 部落战争手游源码( 服务端+客户端+资源+开发文档)

    客户端:cocos2d-x C++开发 服务端:JAVA 数据库:Sql 下载地址:http://www.51xyyx.com/2733.html 下载地址:http://www.51xyyx.com ...

  7. 洛谷:P2172 [国家集训队]部落战争

    题目链接: P2172 [国家集训队]部落战争 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 解题思路: 很明显的二分图:将原点与它能走到的点连一条边,然后做一遍最小点覆盖:即选出 ...

  8. 火柴人部落大乱斗html5游戏在线玩,火柴人部落战争

    火柴人部落战争手游是一款最新的动作闯关休闲玩法手游,游戏中玩家可以自由操控火柴人开启大乱斗,在这里自由经营你的国度,收集武器装备,部落战争激情开战,对游戏感兴趣的话不妨点击下载尝试体验吧! 火柴人部落 ...

  9. 51nod_2929 部落战争(DAG最小路径覆盖)

    部落战争 Problem Description lanzerb的部落在A国的上部,他们不满天寒地冻的环境,于是准备向A国的下部征战来获得更大的领土. A国是一个M*N的矩阵,其中某些地方是城镇,某些 ...

最新文章

  1. sed,sort,uniq,join,cut,paste,split
  2. ftp 客户端 上传
  3. Linux 脚本编写基础(二)
  4. Spring容器初始化Bean、销毁Bean前所做操作的定义方式汇总
  5. 浅谈迷宫搜索类的双向bfs问题(例题解析)
  6. Android Studio在Ubuntu下离线安装Gradle
  7. Zookeeper安装以及启动详解
  8. 中芯国际发布2021Q1财报:55/65纳米工艺依旧为营收主力
  9. Javascript根据属性从对象数据中删除元素
  10. 3.9 训练一个 Softmax 分类器
  11. Schwarz导数与凹凸性
  12. 网站平台架构演变史(四) - 水平拆分的查询
  13. 不同行业的软件都爱用什么编程语言开发?
  14. r语言如何计算t分布临界值_如何利用R语言进行meta分析—详细教程(2)
  15. 新浪云SAE共享型数据库MySQL使用经验
  16. STM32学习笔记二、DS18B20单总线上挂载多路采集
  17. linux操作系统安装自定义分区,CentOS linux操作系统安装图文教程
  18. 西门子_Step7软件仿真方法
  19. 【java获取日期的年月日】
  20. 纽约州立计算机科学,纽约州立大学布法罗分校计算机科学computer science专业排名第176~200名(2020THE泰晤士高等教育世界大学排名)...

热门文章

  1. java con_java安全学习-Code-Breaking Puzzles-javacon详细分析
  2. VMware+Ubuntu18.04详细安装教程
  3. C语言运算符与表达式
  4. Python JPG文件或DCM文件Mask掩膜ROI手动圈画轮廓
  5. Node.js连接数据库 实现注册、登录、判断注册
  6. csi mipi信号解析
  7. 小程序覆盖修改vant-ui的样式
  8. 智慧应急解决方案-最新全套文件
  9. 基于underlay和overlay转换的四层负载均衡
  10. TC第三方控件(官网)