【最小路径覆盖+注意】POJ 2594

最小边覆盖与最小路径覆盖的联系与区别 鉴于我一直没有分清楚最小边覆盖与最小路径覆盖的关系,于是我就写写总结。 边覆盖集:通俗地讲,所谓边覆盖集,就是G中所有的顶点都是E*中某条边的邻接顶点(边覆盖顶点),一条边只能覆盖2个顶点。 注意:在无向图中存在用尽量少的边去“覆盖”住所有的顶点,所以边覆盖集有极小与最小的区别。 极小边覆盖:若边覆盖E*中的任何真子集都不是边覆盖集,则称E*是极小边覆盖集。 最小边覆盖:边数最小的边覆盖称 阅读详情

这题要注意一点,题中说了You should notice that the roads of two different robots may contain some same point. 就是要注意这个细节http://www.cnblogs.com/ka200812/archive/2011/07/31/2122641.html ,要用一次传递闭包floyd找出所有通路

#include <map>
#include <set>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <string>
#include <cstdio>
#include <math.h>
#include <iomanip>
#include <cstdlib>
#include <limits.h>
#include <string.h>
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

#define LL long long
#define MIN -99999999
#define MAX 99999999
#define pii pair<int ,int>

#define bug cout<<"here!!"<<endl
#define PI acos(-1.0)
#define FRE freopen("input.txt","r",stdin)
#define FF freopen("output.txt","w",stdout)
#define eps 1e-8
#define N 505
bool g[N][N];
int match[N];
bool vis[N];
int n;
void floyd(){
    int i,j,k;
    for(k=1;k<=n;k++){
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            if(g[i][k] && g[k][j])
                g[i][j] = true;
        }
    }
    }
}
bool sear(int s){
    int i;
    for(i=1;i<=n;i++){
        if(g[i][s] && !vis[i]){
            vis[i] = 1;
            if(match[i]==0 || sear(match[i])){
                match[i] = s;
                return true;
            }
        }
    }
    return false;
}

int main(){
    int m;
    while(scanf("%d%d",&n,&m) && (n+m)){
        int i,j;
        memset(g,0,sizeof(g));
        memset(match,0,sizeof(match));
        while(m--){
            int a,b;
            scanf("%d%d",&a,&b);
            g[a][b] = true;
        }
        int cnt = 0;
        floyd();
        for(i=1;i<=n;i++){
            memset(vis,0,sizeof(vis));
            if(sear(i))cnt++;
        }
        printf("%d\n",n-cnt);
    }
    return 0;
}


Windows下Fortran调用CGNS库的完整踩坑实录:从HDF5、CMake到VS2019+IVF2020的保姆级配置 本文详细记录了在Windows环境下使用Fortran调用CGNS库的完整配置过程,涵盖HDF5安装、CMake配置、VS2019与IVF2020集成等关键步骤。通过实战经验分享,帮助开发者解决常见编译错误和链接问题,实现高效的Fortran与CGNS库集成。 阅读详情

相关推荐

Unity性能优化 - 动态图集

Unity 动态图集是 Unity 引擎中用于处理游戏纹理优化的一种技术。本文介绍了什么是动态图集,动态图集的优缺点,以及提供了一套完整的代码供大家参考。

qq_33808037的博客 4840

条件覆盖,路径覆盖,语句覆盖

转自http://hi.baidu.com/%D2%D7%B1%D8%BA%C6/blog/item/f016729f4fbeaebbc9eaf4df.html 语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每一个语句至少执行一次,其覆盖标准无法发现判定中逻辑运算的错误;判定覆盖是指选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次,但若程序中的判定是有几个条件联合构成时,它未必能发现每个条件的错误; 条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,

折腾怪的博客 7095

别再对着ACF/PACF图发懵了!用R语言实战教你一眼分清AR、MA和ARMA模型

本文通过R语言实战详细解析了时间序列分析中AR、MA和ARMA模型的特征图识别技巧。重点讲解了如何通过ACF和PACF图的截尾与拖尾特征快速判断模型类型,帮助数据分析师建立从图形到模型的直觉映射,提升时间序列分析的效率和准确性。

weixin_28706923的博客 358

最小路径覆盖详解

定义:通俗点讲,就是在一个有向图中,找出最少的路径,使得这些路径经过了所有的点。 而最小路径覆盖又分为:最小不相交路径覆盖 和 最小可相交路径覆盖。 最小不相交路径覆盖 : 就是我们找到的每条路径不能相交,就是每条路径不能有同一个点。 最小可相交路径覆盖 : 这个与上面相对应,就是可以相交。 注意:每个点被自己覆盖,路径长度为0 求解最小不相交路径覆盖: 我们把每个点都拆成两个点,分为入点和出点...

青烟绕指柔的博客 3152

射频指纹识别技术:原理、应用与深度学习实现

射频指纹识别(RFFI)是一种基于硬件特征的设备身份认证技术,通过分析无线设备发射信号中的独特硬件特征实现设备识别。其核心原理源于发射器硬件电路的非线性特性,如功率放大器的相位噪声和混频器的非线性失真,这些特征具有难以伪造的特点。在物联网和边缘计算场景中,RFFI技术展现出独特优势,尤其在智能家居和工业物联网中,能有效防止非法接入和设备伪造。深度学习方法的引入进一步提升了RFFI的性能,通过自动特征提取和端到端优化,显著提高了识别准确率。本文详细探讨了RFFI的技术原理、应用场景及实现方法,为相关领域的研究

weixin_30457465的博客 891

避坑指南:Python模拟抖音扫码登录时,那些你可能会遇到的‘Referer’和‘Token’校验问题

本文深入解析Python模拟抖音扫码登录时常见的Referer校验与Token失效问题,提供五大陷阱的解决方案。从动态fp参数生成到Referer校验策略,再到Token生命周期管理,手把手教你破解抖音登录接口的反爬机制,助力开发者高效完成自动化登录。

weixin_42573113的博客 783

POJ - 2594 Treasure Exploration(最小可相交路径覆盖)

链接:POJ - 2594 Treasure Exploration 题意: 给出一个含有n (1≤n≤500)n\,(1\le n\le 500)n(1≤n≤500)个结点、m(0≤m≤5000)m(0\le m\le 5000)m(0≤m≤5000)条边的有向无环图(DAG),机器人可以从任意点出发,问至少需要多少机器人,才能遍历图上所有点?(允许同一点同时存在多个机器人) 分析: 即求D...

Plus Ultra! 321

《一》:LBE,VR 大空间系列——场景环境需求解析

当前,大量 VR 体验活动在室内场地开展。因此,对于场地照明有特定要求:除天花板外,场地的所有表面均需有照明覆盖。这是为了保证玩家无论处于场地的哪个位置,地面与墙面都不会出现明显的影子。场地内不建议安装射灯或高强度的点光源,若已安装此类灯具,需使用柔光板进行遮盖。此外,要避免在阳光下使用 VR 设备台。参考图(请忽略其中Maker标签)

unitygroup的博客 944

有向无环图(DAG)的最小路径覆盖

http://www.cnblogs.com/justPassBy/p/5369930.html

A place to record sth. 2616

vLLM专题(七)-支持的模型列表

vLLM支持跨多种任务的生成式和池化模型。如果一个模型支持多个任务,您可以通过–task参数来设置任务。对于每个任务,我们列出了已在vLLM中实现的模型架构。每个架构旁边,我们列出了一些使用该架构的流行模型。

1260

学Simulink——基于Simulink的AUTOSAR架构下电机控制软件组件建模

本文详细介绍了在Simulink中基于AUTOSAR架构开发电机控制软件组件(SWC)的全流程。主要内容包括:首先阐述了AUTOSAR架构对汽车电子系统开发的价值,包括提高软件复用率、降低集成成本和改善验证环境。然后重点讲解了在Simulink中构建电机控制SWC的具体步骤:从创建AUTOSAR组件模型、定义数据端口和服务端口,到搭建FOC控制算法、配置运行实体,最后生成AUTOSAR描述文件和验证RTE接口。文章还提供了与基础软件(BSW)的集成方案、工程实践要点和常见问题解决方案,并以大众MEB平台等实

amy_mhd的博客 68

可重叠的最小路径覆盖 poj2594 Treasure Exploration

传送门:点击打开链接 题意:给一个DAG模型,求最小的路径覆盖,不过这里的路径是可以重叠的。 思路:我们用二分图求的最小路径覆盖的路径是不能有相交的。 所以我们先去遍历一遍DAG模型,对于u点,假如能通过有向边能到达v点,那么就在u和v中间连一条有向边。 对于这个新图我们再用经典的拆点法去跑最小路径覆盖,这题就算是做完了。 在通过DFS建立图的时候,要注意打标记,不然枚举量会非常大。

qwb的博客 868

携程滑块、点选验证码登录识别逆向

本文分析了携程登录系统的风控机制,主要包含三种验证场景:无验证码、滑块验证码和二次图标点选验证码。通过跟踪risk_inspect风控接口,发现验证流程采用标准AES加密,需提交设备指纹等加密信息。当触发验证码时,需额外提交包含轨迹坐标的verify_msg参数及token/rid参数。最终通过风控检测后,需使用一致的指纹参数和验证token完成加密登录。文章强调所有分析仅用于学习,代码实现需确保符合法律规范。

码王吴彦祖的博客 1102

poj/pku 2594 (最小路径覆盖)

题目链接:http://poj.org/problem?id=2594 题意描述:有一张图,图中有n个顶点m有向边条边(这里可以有重边),这个图是一个有向无环图(这就保证了它是一个二分图就可以用匈牙利算法来做),问最少需要多少个机器人能够将所有的点都访问完(注意这里的机

617

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

poj 2594 Treasure Exploration (最小路径覆盖+Floyd缩点)

http://poj.org/problem?id=2594 Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 7759   Accepted: 3196 Description Have you ever re

大太阳 682

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ 2594 Treasure Exploration(传递闭包+最小路径覆盖)

//传递闭包的建立(Floyd) + 最小路径覆盖 //这题有别于1422,原因在于它是一个有向图,而非DAG,机器人可以绕一圈回来在走其他路 //the roads of two different robots may contain some same point. //例如1->2,2->3,3->4,4->2,2->5这一个有向图,这个图只要1个机器人就可以走完所有路,但如果不建立传递闭包 //直接根据边进行匹配,那样得出来的结果是不正确的,因为平时所指的路径覆盖,顶点最多只经过一次,而这

Czy 1677

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

最小路径覆盖(匈牙利算法)

最小路径算法解决以下问题:对于一个DAG,找到最少的路径,覆盖所有顶点。按路径可否相交分为两类。 首先是路径不相交的最小覆盖: 我们可以把每个顶点分为出点和入点,这时每种路径安排都是一个二分图P',问题转化为了求该二分图的最大匹配:如果在P'中增加一条匹配边pi'-->pj',那么在图P的路径覆盖中就存在一条由pi连接pj的边,也就是说pi与pj 在一条路径上,于是路径覆盖数就可以减少一...

rgndao的博客 1163

POJ - 2594 Treasure Exploration(最小路径覆盖-二分图最大匹配+传递闭包)

题目链接:点击查看 题目大意:给出一个有向图,现在需要让最少的机器人沿着图遍历所有点,求出最少需要机器人的数量,注意每个点可以重复遍历 题目分析:因为要遍历所有点,所以还是变成了二分图的最小路径覆盖问题,但这个题不太一样的地方就是每个点可以重复经过,这又和最小路径覆盖问题的定义有了冲突,我们可以重新建图,用floyd闭包传递一下每个点之间的联通关系,这样用新边就可以直接套公式了,我不会证明,但...

Falcon的博客 465

poj-2594

// 2712K 266MS G++ #include #include #include using namespace std; #define MAX 520 int G[MAX][MAX]; int G_F[MAX][MAX]; int iNum; int sNum; int V1[MAX]; int V2[MAX]; char waitingMove[MAX];

fyfcauc的专栏 566

poj 2594(最小路径覆盖)

题意:有n个点需要探索(编号从1到n),然后给出图上有那些有向边,问最少选择多少个点能遍历所有的点。注意走过的点可以重复再走。 题解:二分图求最小路径覆盖问题中点是不可以重复的,但这道题说可以重复,所以做法是可以把走过的点跳过,间接相连的点改为直接相连就可以跳过了。 特殊样例 5 4 1 2 2 3 4 2 2 5#include <stdio.h> #include <string.

俯瞰风景 840

poj 2594 Treasure Exploration 【warshall 求传递闭包 + 最小路径覆盖】

Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 7201   Accepted: 2938 Description Have you ever read any book about treasure explorati

世界很大 538

【算法学习】最小路径覆盖

引入题目有一道这种题:给一个有向无环图,一个士兵可以沿着某条路径走到底,现求最小需要多少个士兵可以把所有的点都走过。解法刚碰这题的时候有几个想法想法一计算入度为0的点有多少个,就需要多少个士兵。 然后又自己提出反例。 如图: 这个例子中需要两个士兵 显然单纯算入度和出度是不行的。放弃想法二直接在原图基础上跑最大流,然后考虑到流量不好控制,遂放弃想法三首先考虑哪些点是起点,假定S是一个起点

inf_force 904

POJ 2594 最小路径覆盖 二分匹配

n个点 m条有向边 下面m条有向边 问至少多少条路径可以把n个点都覆盖( 注意1个单独的点就是一条路径) 显然路径可以合并, 即传递闭包一样, 如: 所有点都在一条单向边上, 那么把所有路径合并就是1条路径 , 这样只需一条路径就可以覆盖所有点   ( 路径可拆可闭)   注意因为用floyd合并了所有路径, 在最后加边时,边数最大为 N*N 条   #include #

九野的博客 1782

poj 2594 Treasure Exploration

Treasure ExplorationTime Limit: 6000MS Memory Limit: 65536KTotal Submissions: 3735 Accepted: 1383DescriptionHave you ever read any book about treasure exploration? Have you ever see any film about treasure exploration? Have you ever explored treasure? If y

hqd_acm的专栏 822

poj 2594 Treasure Exploration(最小路径覆盖/二分最大匹配)

Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 7208   Accepted: 2944 Description Have you ever read any book about treasure exploration

莫道青天真无道,能逍遥时且逍遥! 1429

poj2594 经处理后的最小路径覆盖

题目描述: 给你一个有向无环图,有n个点,m条有向边。 一个机器人可以从任意点开始沿着边的方向走下去。对于每一个机器人:走过的点不能再走过。 问你最少用几个机器人可以走完所有的n个点,不同的机器人可以走相同的点。 可以看出这题类似于经典的最小路径覆盖。(注意最小路径覆盖和最小边覆盖的区别)只不过多了一个条件就是可以多个机器人访问同一个点。 思路也和之前一样,建图找最大匹配数,这时问题来了

thunderMrbird的博客 807
上一篇: Codeforces Round #102 (Div. 2)
下一篇: 【最小边覆盖 & 最小路径覆盖 & 最小顶点覆盖 & 最大独立集 & 最大团】
leolin_
博客等级 码龄16年 96粉丝 411原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值