题目地址

有一个$M * N$的棋盘,有的格子是障碍。现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵。我们称这些士兵占领了整个棋盘当满足第i行至少放置了$L_i$个士兵, 第j列至少放置了$C_j$个士兵。现在你的任务是要求使用最少个数的士兵来占领整个棋盘。


考虑到说棋盘问题,选的行和列之间是有关联的,彼此制约着数量,就应该可以从网络流入手(然而如果我不是奔网络流刷题来的说不定会瞎写一发dp)

最小化答案,应该对应的是最大流的反向转化(也就是化加为减,求减数最大值,如最小路径覆盖),要不然就是最小割。反正这题辣鸡我是想了一会最小割没想出来才去转化问题的。最少要摆多少个,可以看成把棋盘能摆满的都摆满,再去删去没必要的点。这样的话构建二分图,左点集表示每行,右点集是列。s点向左点集连边容量为$n-L_i-x$ x表示本行障碍数量。容量意思就是我这行最多可以删

最新文章

  1. TFS 测试用例步骤数据统计
  2. Ionic 今天发布了Windows 桌面版的IDE Ionic Lab
  3. android ImageSwitcher
  4. delphi ExecWB
  5. 一分钟明确 VS manifest 原理
  6. CSS之Position详解
  7. (转)jQuery验证控件jquery.validate.js使用说明+中文API
  8. LeetCode OJ 154. Find Minimum in Rotated Sorted Array II
  9. MySQL关于check约束无效的解决办法
  10. linux下安装node
  11. Win10下Docker学习(1)安装
  12. SQL Server判断是否满足日期格式(YYYYMMDD)以及中文等判断,格式化为YYYY-MM-DD
  13. Emit方式调用方法
  14. jquery快速入门(二)
  15. Python——使用高德API获取指定城指定类别POI并实现XLSX文件合并
  16. Linux 切换用户
  17. Android中使用Lambda表达式开发
  18. http代理和SOCKS5代理的区别
  19. CUDA C Programming Guide 在线教程学习笔记 Part 9
  20. 百度地图API--Key的获得

热门文章

  1. Struts2学习六----------默认Action
  2. Java 调用OPENOFFIC 转换文档类型
  3. 最短路 uva12661 Funny Car Racing
  4. Python中strip方法的妙用
  5. ios -- 延迟3秒触发performSelector
  6. Django Rest Framework remove csrf
  7. Louvain Modularity Fast unfolding of communities in large networks
  8. 【题解】kth异或和/魔改版线性基
  9. 新版本ADT创建Android项目无法自动生成R文件解决办法
  10. 一起来学linux:ACL