[BZOJ 1741] Asteroids
2024-08-31 01:19:01
[题目链接]
https://www.lydsy.com/JudgeOnline/problem.php?id=1741
[算法]
将每颗小行星的行,列相连,问题就转化为了求这张图的最小覆盖
由konig定理可知,最小覆盖 = 最大匹配,因此,用匈牙利算法求二分图最大匹配即可
[代码]
#include<bits/stdc++.h>
using namespace std;
#define MAXN 510
#define MAXK 10010 struct edge
{
int to,nxt;
} e[MAXK]; int n,k,i,r,c,ans,tot;
int head[MAXN],match[MAXN << ];
bool visited[MAXN << ]; inline void addedge(int u,int v)
{
tot++;
e[tot] = (edge){v,head[u]};
head[u] = tot;
}
inline bool hungary(int u)
{
int i,v;
visited[u] = true;
for (i = head[u]; i; i = e[i].nxt)
{
v = e[i].to;
if (!visited[v])
{
visited[v] = true;
if (!match[v] || hungary(match[v]))
{
match[v] = u;
return true;
}
}
}
return false;
} int main()
{ scanf("%d%d",&n,&k);
for (i = ; i <= k; i++)
{
scanf("%d%d",&r,&c);
addedge(r,c + n);
}
for (i = ; i <= n; i++)
{
memset(visited,false,sizeof(visited));
if (hungary(i)) ans++;
}
printf("%d\n",ans); return ; }
最新文章
- qt 设置
- BZOJ3073 : [Pa2011]Journeys
- ggplot2 legend图例的修改
- 弹性ScrollView,和下啦刷新的效果类似 实现下拉弹回和上拉弹回
- 项目 erlang启动时死循环
- oracle3
- 手写JS无缝滚动插件
- python使用环境的设置
- Ubuntu16.04 install mysql5.X
- JBoss启动项目报错
- Dynamics CRM2016 新功能之从CRM APP中导出数据至EXCEL
- Swift变量名的一种玩法
- 【Unity Shaders】Unity里的雾效模拟
- VS2017中用C#调试DLL
- 如何在java List中进行模糊查询
- 数据库无法打开到SQL Server连接
- js--阻止冒泡,捕获,默认行为
- CentOS 7 安装并配置 MySQL 5.6
- Java流(Stream)、Scanner类
- qt下的跨目录多工程编译(转)
热门文章
- Ajax——异步基础知识(三)
- js分页插件
- Python标准库os
- iOS crash log 解析 symbol address = stack address - slide 运行时获取slide的api 利用dwarfdump从dsym文件中得到symbol
- 学习csv
- HTML 符号实体
- Beauty of Array ZOJ - 3872(思维题)
- Cashier (codeforces 1059A)
- 解决高分屏/高DPI下GNOME3/Linux字体和按钮太小的问题
- Linux:安装CentOS 6.x和CentOS 7.x