题面

贝茜想在 \(N\times N\) 的网格中驾驶她的宇宙飞船。网格中有 \(K\) 个小行星。要使驾驶过程愉快,就必须把这些小行星全部消除。

贝茜有一个武器,可以以一个单位代价消除一行或一列的全部小行星。贝茜想问你,要把所有小行星都消除的最小代价是多少。

对于 \(100\%\) 的数据,\(1 \leq N \leq 500\),\(1 \leq K \leq N \times N\)。

思路

见到“最小代价”想到最小点覆盖。这道题就是最小点覆盖。竟然可以消除一行或者一列,那么对行建点 \(L(i)\),对列建 \(C(i)\),然后连边 \((L(i),C(i))\),不难发现这是一个二分图,直接匈牙利即可。

时间复杂度 \(O(n^2)\)。

代码

#include <iostream>
#include <vector>
using namespace std; int n,m,t;
int mch[1005],vist[1005];
vector<int> g[1005]; bool dfs(int u,int tag){
if(vist[u]==tag) return false;
vist[u]=tag;
for(int i=0;i<g[u].size();i++){
int v=g[u][i];
if((mch[v]==0)||dfs(mch[v],tag)){
mch[v]=u;
return true;
}
}
return false;
} int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
g[u].push_back(v+n);
}
int ans=0;
for(int i=1;i<=2*n;i++){
if(dfs(i,i)) ans++;
}
cout<<ans<<endl;
return 0;
}

AC Record

最新文章

  1. Unit01: JAVA开发环境
  2. DP - 2016网易杭研笔试题A
  3. ORACLE -- ArcSDE Lock request conflicts with an established lock【转】
  4. ASP.NET WebAPI 03 返回结果
  5. c语言&quot;a&lt;b&lt;c&quot;条件值的判定
  6. php获取mac用于网站绑定服务器
  7. 武汉科技大学ACM:1005: Soapbear and Honey
  8. The Java™ Tutorials下载地址
  9. 【前端】一句命令快速合并压缩 JS、CSS
  10. C#语音录制
  11. ASP.NET MVC 5 基本构成
  12. CSS - DOM 经常使用方法
  13. 如何下载github项目中的部分文件(文件夹)
  14. javascript循环---性能优化
  15. Hbase 备份的方式
  16. 【洛谷P3014】Cow Line
  17. mycat环境搭建
  18. python 列表 元祖 集合
  19. 网络协议之TLS
  20. tensorflow中的sequence_loss_by_example

热门文章

  1. API接口笔记
  2. 后端框架的学习----mybatis框架(5、分页)
  3. kubernetes之kubectl与YAML详解1
  4. Oracle数据泵导入dmp文件,报UDI-00013、UDI-00019错误原因
  5. Flask框架:如何运用Ajax轮询动态绘图
  6. .NET二叉树,递归和迭代遍历二叉树
  7. TortoiseGit间接处理linux目录下的仓库,用到window映射linux目录方案
  8. RNN的PyTorch实现
  9. Java 中经常被提到的 SPI 到底是什么?
  10. MySQL数据库:7、SQL常用查询语句