HDU 1151 Air Aaid 最小路径覆盖

题目大意:

在一个城镇,有m个路口,和n条路,这些路都是单向的,而且路不会形成环,现在要弄一些伞兵去巡查这个城镇,

伞兵只能沿着路的方向走,问最少需要多少伞兵才能把所有的路口搜一遍。这个题目就转换成求解有向无环图的最

小路径覆盖问题了。

一个结论:有向无环图的最小路径覆盖=该图的顶点数-该图的最大匹配。

 

AC代码:

#include<iostream>
using namespace std;

const int MAX=121;
int no_of_intersections,no_of_streets,t;
int link[MAX];    //记录当前与street终点相连的起点点
bool map[MAX][MAX];  //存储二分图,起点到终点有路径,则map[x][y]=true;反之,为false
bool useif[MAX];   //记录路口点是否使用了)

void getMap()  //存图
{
	memset(map,false,sizeof(map));

	int a,b;
	for(int i=1;i<=no_of_streets;i++)
	{
		cin>>a>>b;
		map[a][b]=true;
	}
}

bool can(int t)
{
	for(int i=1;i<=no_of_intersections;i++)
	{
		if(!useif[i] && map[t][i])
		{
			useif[i]=true;
			if(link[i]==-1 || can(link[i]))
			{
				link[i]=t;
				return true;
			}
		}
	}

	return false;
}

int maxMatch()
{
	int num=0;

	memset(link,int(-1),sizeof(link));  //未连的计为-1
	for(int i=1;i<=no_of_intersections;i++)   //从street起点开始依次搜索增广路经
	{
		memset(useif,false,sizeof(useif));
		if(can(i)) num++;
	}

	return num;
}

int main()
{
	cin>>t;
	while(t--)
	{
		cin>>no_of_intersections>>no_of_streets;

		getMap();

		cout<<no_of_intersections-maxMatch()<<endl;
	}

	return 0;
}


 

 

 

QT实现警报应用程序 阅读详情

相关推荐

FFmpeg HDR视频转SDR视频命令

之前蓝光盘电影多是AVC 1080p 8bit SDR格式视频,近两年4K电影流行,下载的蓝光电影多是HEVC 2160p 10bit HDR视频格式。 ffprobe查看有如下属性: # 10bit HDR Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98

彼此当年少,莫负好时光 1万+

hdu1151 学习笔记

这题是一道DAG图的最小路径覆盖问题。 DAG图的最小路径覆盖: 用尽量少的不相交简单路径覆盖有向无环图(DAG)G的所有顶点,这就是DAG图的最小路径覆盖问题。 方法主体是:DAG图的最小路径覆盖数=节点数(n)- 最大匹配数(m) 在题目中,将所有地点(1,2,3...n)都当做两份,形成共含有2n个节点的二分图。然后寻找到最大匹配,在以节点数n减去最大匹配数就可以了。 匈牙利算

Mr.ProphetK 589

想学嵌入式但没开发板?试试这个免费的STM32虚拟仿真平台(含LVGL界面教程)

本文介绍如何利用免费的STM32虚拟仿真平台学习嵌入式开发,特别适合预算有限或零硬件基础的学习者。通过详细的LVGL界面开发教程,展示虚拟仿真在嵌入式学习中的高效性和实用性,涵盖环境搭建、代码实现到实机迁移的全流程,助力快速掌握嵌入式开发核心技能。

weixin_29266647的博客 308

hdu-1151(最小路径覆盖)

大致题意:有n个十字路口,m条街道,每两个十字路口组成的街道是单向的,现在要在一些十字路口放置一些士兵进行看护,士兵可以通过街道从一个十字路口到达另一个十字路口(注意是单向的,且每个路口最多被一个士兵看护),问最少需要几个士兵就可以看护所有的十字路口?解题思路:本题强调图是无环图,我们想,假如开始n个十字路口都是独立的(没有街道),那么需要n个士兵进行看护。如果有两个十字路口可以组成一条单向路,那...

zyy.cpp 的博客 300

shopro 商城,2025年新申请的微信支付提示失败,支付提示 Get Wechat Public Cert Error 问题的修复办法

shopro 商城,最近新申请的微信支付商户 支付提示 Get Wechat Public Cert Error 问题的修复办法

行走的卡路里 1245

UFS电源管理实战:如何优化手机存储的功耗与性能(附实测数据)

本文深入探讨了UFS电源管理的实战优化策略,旨在平衡手机存储的功耗与性能。通过解析UFS核心电压域与工作状态,重点介绍了通过动态调整bActiveICCLevel(活动电流等级)来实现精细控制,并结合实测数据与场景驱动的智能策略,为Android系统与硬件工程师提供了降低功耗、提升流畅度的有效方法。

weixin_29214559的博客 504

hdu 1151 最小覆盖路径算法证明

又是二分图。若还不知道匈牙利算法,看我前面的文章 先把每个点拆成两个,一个表示出,一个表示入,根据数据输入,对应的出点和对应入点之间构造了一条边。这样就有了一个二分图。 有向图的最小路径覆盖 = 总的点数(为拆分前的) - 最大匹配数。 证明如下: 先假设所有点我们都派出一个伞兵。然后每增加一条匹配,就代表我们从一个点出走向一个点。并且根据最大匹配的定义,我们可以直接看作是将这两个点合并到

QZQ 653

YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块

本文记录的是基于FasterNet的YOLOv11轻量化改进方法研究。FasterNet的网络结构借鉴 CNN 的设计理念,通过提出的PConv减少推理时的计算和内存成本,同时减少通道数并增加部分比例,降低延迟,并通过后续的PWConv来弥补特征信息可能缺失的问题,提高了准确性。本文在替换骨干网络中配置了原论文中的和六种模型,以满足不同的需求。

Limiiiing的博客 2033

HDU 1151 Air Raid(最小路径覆盖)

二分图匹配(匈牙利算法的DFS实现) 初始化:g[][]两边顶点的划分情况 建立g[i][j]表示i->j的有向边就可以了,是左边向右边的匹配 g没有边相连则初始化为0 uN是匹配左边的顶点数,vN是匹配右边的顶点数 调用:res=hungary();输出最大匹配数 优点:适用于稠密图,DFS找增广路,实现简洁易于理解 时间复杂度:O(VE) *******************

Dosth_Magic 859

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.5 RTC设备编写与实现

4. Linux kernel RTC子系统goldfish_rtc driver分析。电脑,会需要时间,还比如 我们的手机、平板,都需要时间;驱动基本就是应用层需要什么数据你给什么数据就行,基本必须实现的就是。3.2 Linux kernel RTC 设备描述符讲解。中看到他的具体实现,也可以根据他的寄存器描述直接在。5. 将驱动添加进kernel和测试RTC驱动。系统来说,时间是一个非常重要的功能;之类的函数接口,接下来我们就开始讲解如何写。,所以我们直接移植设备树即可。,他的寄存器很简单,你可以从。

DSMGUOGUO的博客 570

GEE:提取研究区 NDVI/LST/RVI 并进行时间序列线性插值填补缺失像素和Savitsky-Golay(SG)滤波平滑处理

养乐多_本文将介绍使用Landsat数据集,构建时间序列,并使用线性插值算法填补缺失数据,或者去云空洞,并进一步对完整的时间序列数据进行SG滤波处理。

养乐多的博客 3200

二分匹配算法

目录学习篇二分图以及其最大匹配匈牙利算法二分图最大匹配变形题最小顶点覆盖 || 最大独立集DAG图的最小路径覆盖水题集hdu 2063:男女最大匹配hdu 1150:机器最少重启次数hdu 1151:DAG最小覆盖路1068:最大没有联系的男女个数hdu 1281 :骑士最大放置数 学习篇 二分图以及其最大匹配 一、什么是二分图 如果一个图的顶点可以分为两个集合X、Y, 图的所有边一定是有一个顶点属于集合X,另一个顶点属于集合Y, 则称该图为“二分图”或“二部图”。 二、二分图的最大匹配 在二分图的应用中,

weixin_52723996的博客 1273

threejs中使用Reflector实现出倒影效果,并实现背景透明的效果(Reflector镜面背景透明, 倒影弱化)

在项目中遇到要实现倒影效果,threejs给我们提供了Reflector,可以轻松完成镜面效果,实现倒影。但背景不透明;并且反射出的倒影太亮了;网上没搜到解决方案, 自己修改了下源码实现了想要的效果,做个记录...

weixin_40856652的博客 5723

poj 1422 二分图最小路径覆盖

二分图最小路径覆盖==点数n--二分图最大匹配,,,知道了这个公式,,又是一道水题。。。二分图方面的题,,关键是建图,把图建好了,剩下的就简单了。。。题目: Air Raid Time Limit:1000MS Memory Limit:10000K Total Submissions:4600 Accepted:2722 D...

hunxiejun 278

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

J - Air Raid HDU - 1151(最小路径覆盖数)

题目链接 解题思路: 裸的最小路径覆盖,不过因为时间复杂度,要把普通的二分图匹配改为hk匹配 AC代码: // Test1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // //DAG的最小路径覆盖数 = DAG图中的节点数 - 相应二分图中的最大匹配数 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #include &l

trouble_的博客 198

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HDU-1151(求最小覆盖路径数_二分匹配)

这道题目,还是应该看成是定理题目,自己也不能够证明够出为什么给要这么做..... 有空一定要去问问别人,当然我也会自己找课件看看的... 很好敲,, 留下代码: #include #include #include #include int N,M; int map[125][125]; int visit[125]; int link[125]; int getnum(int

李硕 878

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

HDU -1151 二分匹配与DAG图

题意: t组输入。每组数据第一行代表有n个城市,第二行表示有m个街道,而且这些街道都是单向的,它是一个DAG图(有向无环图),每次你派到一个城市一个机器人,它就会沿着道路走下去,你只需要用最少的机器人把所有城市都走一遍就可以了。问你最少多少个机器人 题解: 那么很显然像1->2->3->4这样的图,只需要一个机器人就可以了。我们这个时候可以利用拆点就是把{1...

weixin_30487201的博客 228

HDU 1151 Air Raid

目录知识点:二分匹配、贪心、思维题目输入输出样例输入输出题意思路代码 知识点:二分匹配、贪心、思维 题目 Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through town’s streets you can ne

夏午Sharve的博客? 283

hdu 1151 Air Raid(DAG有向无环图 最小路径覆盖+二分图最大匹配Hungarian)

Problem Description Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through town’s streets you can never reach the same intersection i

Jacob0824的博客 564

hdu 1151 最小路径覆盖数 = n - 最大匹配数

题意:n个点m条边的有向无环图,每个点走一次,问最小沿着图走几次可以遍历每个点。 题解:最小路径覆盖数 1.有向图求最大匹配数,最小路径覆盖数 = n - 最大匹配数。 2.套用匈牙利算法的模板即可。 #include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;stdio.h&gt; #include&lt;math.h&gt...

Irving0323的博客 357

HDU1151 Air Raid【二分图 最小路径覆盖】

Air Raid Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6562    Accepted Submission(s): 4357   Problem Description Consider a town where al...

逐梦者 282

ZOJ 1525(最小路径覆盖)

Air RaidTime Limit: 1 Second      Memory Limit: 32768 KB Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through town's streets you

-- bird -- 1010

hdu1151

/* 分析:     水。     最小路径覆盖。     DAG图的最小路径覆盖数=节点数(n)- 最大匹配数(m)                                                2012-07-13 */ #include"stdio.h" #include"string.h" struct A { i

Ice_Crazy的专栏 968

HDU1151最小路径覆盖

DAG图(无回路有向图)的最小路径覆盖 用尽量少的不相交简单路径覆盖有向无环图(DAG)的所有顶点,这就是DAG图的最小路径覆盖问题。最小路径覆盖数 = 节点数- 最大匹配数#include <iostream> #include <cstring> #include <cstdio> using namespace std;const int MAXN=200; int linker[MAXN]

skymeteorite 697

hdu1151 最小路径覆盖

http://acm.hdu.edu.cn/showproblem.php?pid=1151 Problem Description Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also know

ACM,再见! 1638

hdu1151(二分图+最小路径覆盖数+匈牙利算法)

Air Raid Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2364    Accepted Submission(s): 1528 Problem Description Consider a town where

晓风残月xj 872
上一篇: HDU 2063过山车 二分图最大匹配 匈牙利算法
下一篇: HDU2554 N对数的排列
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值