POJ 1422 Air Raid(二分图匹配最小路径覆盖)

news/2024/6/1 21:33:48

POJ 1422 Air Raid

题目链接

题意:给定一个有向图,在这个图上的某些点上放伞兵,能够使伞兵能够走到图上全部的点。且每一个点仅仅被一个伞兵走一次。问至少放多少伞兵

思路:二分图的最小路径覆盖,每一个点拆成两个点,然后依据有向边连边,然后答案为n - 最大匹配数

代码:

#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;

const int N = 125;

int t, n, m;
vector<int> g[N];

int left[N], vis[N];

bool dfs(int u) {
	for (int i = 0; i < g[u].size(); i++) {
		int v = g[u][i];
		if (vis[v]) continue;
		vis[v] = 1;
		if (!left[v] || dfs(left[v])) {
			left[v] = u;
			return true;
		}
	}
	return false;
}

int hungary() {
	int ans = 0;
	memset(left, 0, sizeof(left));
	for (int i = 1; i <= n; i++) {
		memset(vis, 0, sizeof(vis));
		if (dfs(i)) ans++;
	}
	return ans;
}

int main() {
	scanf("%d", &t);
	while (t--) {
		scanf("%d%d", &n, &m);
		for (int i = 1; i <= n; i++) g[i].clear();
		int u, v;
		while (m--) {
			scanf("%d%d", &u, &v);
			g[u].push_back(v);
		}
		printf("%d\n", n - hungary());
	}
	return 0;
}



http://www.niftyadmin.cn/n/1000225.html

相关文章

质因数

问题 将一个大于零的整数分解为质数&#xff08;质因数&#xff09;相城 分析&#xff1a; 初设一个质数k&#xff0c;并赋值最小质数&#xff1a;2&#xff0c;即k2如果这个整数n等于k&#xff0c;则停止分解。如果n能够被k整除&#xff0c;也就是n%k0&#xff0c;那么n就换为…

tcp拥塞算法分析三(cubic)

本文分析linux-4.14.69代码的cubic拥塞算法&#xff0c;参考论文 “CUBIC: A New TCP-Friendly High-Speed TCP Variant" 传统的拥塞算法&#xff08;TCP-Reno, TCP-NewReno and TCP-SACK&#xff09;在BDP(bandwidth and delay product)很大的情况下&#xff0c;窗口增加…

Google BBR拥塞控制算法背后的数学解释

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01;杭州待了一段时间&#xff0c;回到深圳过国庆…

Android游戏开发之Tween动画的实现(三十二)

Android游戏开发之Tween动画的实现雨松MOMO原创文章如转载&#xff0c;请注明&#xff1a;转载自雨松MOMO的博客原文地址:http://blog.csdn.net/xys289187120/article/details/6747877今天和大伙讨论一下Android开发中的Tween动画的实现。首先它和上一章我们讨论的Frame动画同属…

synchronized的使用方法

2019独角兽企业重金招聘Python工程师标准>>> Java语言的关键字&#xff0c;当它用来修饰一个方法或者一个代码块的时候&#xff0c;能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块…

ansible memcached

为什么80%的码农都做不了架构师&#xff1f;>>> 环境服务端centos6.6、客户端IP 192.168.0.156 ansible部署memcached yum install ansible #aliyun epel echo -e "[memcached]\n192.168.0.156" >> /etc/ansible/hosts ssh-copy-id -i .ssh/i…

(翻译)tcp滑动窗口数据传输和确认机制

英文原文参考http://www.tcpipguide.com/free/t_TCPSlidingWindowDataTransferandAcknowledgementMech-2.htm tcp客户端和服务端会根据三个指针划分的四个类别来跟踪发送和接收流&#xff0e; 发送未确认&#xff08;snd.una&#xff09;:第一个发送但没有收到ack的序列号&am…

Qt widgets

Qt widgets 1,Qt部件Widgets--CheckWidgets,安置其他部件的Widgets,让用户选择数值的部件 选择部件---使用户能够从预定义的条目菜单中做出选择,combination QListBox,QComboBox,列表组合框 QListBox列表框部件一般用于使用户从中选择一个或多个条目,条目通常为文本类型,也可以…