嗯...

题目链接:http://poj.org/problem?id=3041

这道题的思想比较奇特:

把x坐标、y坐标分别看成是二分图两边的点,如果(x,y)上有行星,则将(x,y)之间连一条边,而我们要做的就是要找尽量少的点把所有的边覆盖,即为最小点覆盖问题,根据König定理:最小覆盖点数=最大匹配数,所以就可以用匈牙利算法求最大匹配了。

AC代码:

 #include<cstdio>
#include<cstring>
#include<iostream> using namespace std; int match[], vis[], g[][], n; inline int dfs(int u){
for(int i = ; i <= n; i++){
if(g[u][i] && !vis[i]){
vis[i] = ;
if(!match[i] || dfs(match[i])){
match[i] = u;
return ;
}
}
}
return ;
}//匈牙利 inline int hungary(){
int ans = ;
for(int i = ; i <= n; i++){
memset(vis, , sizeof(vis));
if(dfs(i)) ans++;
}
return ans;
} int main(){
int k;
while(~scanf("%d%d", &n, &k)){
for(int i = ; i <= k; i++){
int r, c;
scanf("%d%d", &r, &c);
g[r][c] = ;
}
printf("%d\n", hungary());
}
return ;
}

AC代码

最新文章

  1. [Eclipse] - eclipse集成jboss7.1
  2. P1311 选择客栈
  3. Image zImage uImage
  4. Spring+MyBatis多数据源配置实现
  5. MySQL数据库安装,配置My.ini文件
  6. Android IOS WebRTC 音视频开发总结(四八)-- 从商业和技术的角度看视频行业的机会
  7. NServiceBus-网关和多站点分布
  8. html 如何引入一个公共的头部和底部
  9. ext.apply和ext.applyIf
  10. SurfaceView的一个小应用:开发示波器
  11. java实现代理domino web邮件下载
  12. VC POST表单——登录验证新浪邮箱
  13. 解决子级用css float浮动 而父级div没高度不能自适应高度
  14. ABP官方文档翻译 4.3 校验数据传输对象
  15. 基于.net的分布式系统限流组件(限流算法:令牌算法和漏斗算法)
  16. 第37章 资源所有者密码验证(Resource Owner Password Validation) - Identity Server 4 中文文档(v1.0.0)
  17. 【读书笔记】使用JMeter创建数据库(Mysql)测试
  18. C++实现算法常用的STL---整理
  19. web.xml配置说明
  20. 死磕nginx系列--配置文档解读

热门文章

  1. django 搭建一个投票类网站(二)
  2. Ubuntu 的apt install 和卸载正确姿势
  3. Centos7搭建Apache2.4
  4. DisplayNameFor()方法的工作原理
  5. java多线程之wait和notify协作,生产者和消费者
  6. MarkDown的黄金搭档Typora编辑器
  7. android如何让checkbox实现互斥以及android验证端cession登录注意事项
  8. CDH安装时,无法纳管全部的节点的一个bug
  9. ACM-ICPC实验室20.2.21测试-图论(二)
  10. 前端知识之html