题解 | #炸弹#

炸弹

https://ac.nowcoder.com/acm/problem/236754

将每个点定义为二分图中的一条边,此时每条边都需要被他的任意一个端点覆盖,就变成了最小点覆盖问题。
而最小点覆盖=最大匹配
套匈牙利算法模板就好啦

#include<iostream>
#include<cstring>
using namespace std;
const int N=1e6+10;
int st[N],match[N];
int g[1005][1005];
int n,k;
bool find(int u)
{
	for(int i=1;i<=n;i++)
	{
		if(st[i])
		{
			continue;
		}
		if(g[u][i])
		{
			st[i]=true;
			if(match[i] == -1 || find(match[i]))
			{
				match[i]=u;
				return true;
			}
		}
	}
	return false;
}
int main()
{
	memset(match,-1,sizeof match);
	cin>>n>>k;
	for(int i=0;i<k;i++)
	{
		int x,y;
		cin>>x>>y;
		g[x][y]=1;
	}
	int res=0;
	for(int i=1;i<=n;i++)
	{
		memset(st,false,sizeof st);
		if(find(i))
		{
			res++;
		}
	}
	cout<<res;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:11
我最近都有点不想活了,天天早10晚11的,还问我爱不爱她目前的状态别说爱谁了,没扇谁就不错了。是不是大家都是一进节子,只有工作没有爱情了
AzureSkies:在字节的时候找的就是字节的,飞书太适合恋爱人士了,能看到是不是已读,是不是在会议中。简直冥婚好伴侣
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
简历中的项目经历要怎么写
点赞 评论 收藏
分享
asdasdasda...:19岁,不容易啊可能升个本会好点,现在学历歧视太严重了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务