当前位置: 首页 > 编程日记 > 正文

【ACM】杭电OJ 2063

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063

借鉴:http://blog.sina.com.cn/s/blog_ac5ed4f30101ewjk.html

二分图(二部图):图论中的一种特殊模型。设G(V,E)是一个无向图,如果顶点V可以分割成为两个互不相交的子集(A,B),并且图中的每一条边(i,j)所关联的两个顶点 i 和 j 分别属于这两个不同的顶点集(i in A ,j in B),则称G是一个二分图。

最大匹配:给定一个二分图G,在G的一个子图M种,M的边集中任意两条边都不依附于同一顶点,则称M是一个匹配。如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也称作完备匹配。

增广路(增广轨或者交错轨):若P是图G中一条连通两个未匹配顶点的路径,并且属M的边和不属M的边(即已匹配和待匹配的边)在P上交替出现,则称P为相对于M的一条增广路径。(来源于二分图【百度百科】)

交替路:从一个未匹配点出发,依次经过非匹配边,匹配边,非匹配边,形成的路径叫交替路。

增广路:从一个未匹配点出发,走交替路,如果途径另一个未匹配点(出发的点不算),则这条交替路称为增广路。(来源于:二分图的最大匹配、完美匹配和匈牙利算法【博客园】)

初始化:

杭电 <wbr>acm <wbr>2063 <wbr>( <wbr>过山车 <wbr>)

0对,无匹配

第一遍  


杭电 <wbr>acm <wbr>2063 <wbr>( <wbr>过山车 <wbr>)

1对, a--A

第二遍
杭电 <wbr>acm <wbr>2063 <wbr>( <wbr>过山车 <wbr>)

杭电 <wbr>acm <wbr>2063 <wbr>( <wbr>过山车 <wbr>)

杭电 <wbr>acm <wbr>2063 <wbr>( <wbr>过山车 <wbr>)
 

2对, a--B ,b--A

第三遍
杭电 <wbr>acm <wbr>2063 <wbr>( <wbr>过山车 <wbr>)

杭电 <wbr>acm <wbr>2063 <wbr>( <wbr>过山车 <wbr>)

杭电 <wbr>acm <wbr>2063 <wbr>( <wbr>过山车 <wbr>)

3对, a--B ,b--C ,c--A

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;const int maxn = 505;
int map[maxn][maxn];
int vis[maxn];
int pri[maxn];
int K,M,N;int find(int x)
{int i;for(i=1;i<=N;i++){if(vis[i]==0 && map[x][i]){vis[i]=1;if(pri[i]==-1 || find(pri[i])){pri[i]=x;return 1;}}}return 0;
}int main ()
{int k,j,i,sum;while(scanf("%d",&K)!=EOF && K){sum=0;memset(map,0,sizeof(map));memset(pri,-1,sizeof(pri));scanf("%d%d",&M,&N);for(k=1;k<=K;k++){scanf("%d%d",&i,&j);map[i][j]=1;}for(i=1;i<=M;i++){memset(vis,0,sizeof(vis));if(find(i))sum++;}printf("%d\n",sum);/*for(i=1;i<=N;i++){printf("%d %d\n",pri[i],i);}*/}return 0;
}

带注释的是输出打印查看所配对的种类

相关文章:

AngularJs表单自动验证

angular-auto-validate 地址&#xff1a;https://github.com/jonsamwell/angular-auto-validate 引用&#xff1a; <script src"/Assets/JS/AngularJS/angular-auto-validate/dist/jcs-auto-validate.js" charset"utf-8"></script> 依赖&#…

AlwaysVisibleControlExtender

今天早上学习了AlwaysVisibleControlExtender控件&#xff0c;感觉还是不错。下午就写点东西&#xff0c;总结一下使用方法。 简单使用示例(显示当前时间) 1&#xff09;在VS下&#xff0c;新建一个ASP.NET AJAX-Enabled Web Project项目&#xff0c;命名为AlwaysVisibleC…

Depth graph

深度相机 定义&#xff1a;可以直接获取场景中物体距离摄像头物理距离的相机。在计算机视觉系统中&#xff0c;三维场景信息为图像分割、目标检测、物体跟踪等各类计算机视觉应用提供了更多的可能性&#xff0c;而深度图像&#xff08;Depth map&#xff09;作为一种普遍的三维…

【ACM】POJ 1852

【问题描述】 一队蚂蚁在一根水平杆上行走&#xff0c;每只蚂蚁固定速度 1cm/s. 当一只蚂蚁走到杆的尽头时&#xff0c;立即从秆上掉落. 当两只蚂蚁相遇时它们会掉头向相反的方向前进. 我们知道每只蚂蚁在杆上的初始位置, 但是, 我们不知道蚂蚁向哪个方向前行. 你的任务是计算…

ZStack--通过Ansible实现全自动化

2019独角兽企业重金招聘Python工程师标准>>> Agent是一种常见的IaaS软件管理设备的方式&#xff1b;例如&#xff0c;ZStack使用Python agents去管理KVM主机。因为海量的设备&#xff0c;安装和升级agents成为巨大的挑战&#xff0c;所以大多数IaaS软件把这个问题留…

SVO 半直接视觉里程计

SVO 从名字来看&#xff0c;是半直接视觉里程计&#xff0c;所谓半直接是指通过对图像中的特征点图像块进行直接匹配来获取相机位姿&#xff0c;而不像直接匹配法那样对整个图像使用直接匹配。整幅图像的直接匹配法常见于RGBD传感器&#xff0c;因为RGBD传感器能获取整幅图像的…

css构造文本

1. 1. 文本缩进text-indent&#xff1a;值&#xff1b;值为数字&#xff0c;最常用的数值单位是px(像素)&#xff0c;也可以直接是百分比&#xff01;text-indent:100px;text-indent:10%;2. 文本对齐text-align:对其方式;可以的值为&#xff1a;left、center、right3. 文本行高…

【数据结构】单链表的逆序输出(两种方法)

第一种方法&#xff1a;转换指针方向 即&#xff1a;将一个已经创建好的单链表进行指针域的改变 今天突然被问到单链表逆序的问题&#xff0c;弄了好久才看出别人的程序有啥问题&#xff0c;就重新写了一遍。 今天才在CSDN客户端上看到美团的面试题是冒泡排序。 一个看似简单…

koa+mongoose基础入门

1.mongoose基本使用 1.安装mongodb npm install mongodb 2.引入mongodb数据表&#xff0c;连接mongodb&#xff0c;通过node来对mongodb进行异步的增删改查 const mongodb requrie(mongodb); mongodb.MongoClient.connect("mongodb://localhost/db1", function(err,…

视觉SLAM学习(三)--------SLAM 综述

SLAM概述 参考资料分享来自本人博客&#xff1a;https://blog.csdn.net/Darlingqiang/article/details/78840931 SLAM一般处理流程包括track和map两部分。所谓的track是用来估计相机的位姿&#xff0c;也叫front-end。而map部分(back-end)则是深度的构建&#xff0c;通过前面…

【数据结构】所有顶点对的最短路径 Floyd算法

所有顶点对的最短路径问题是指&#xff1a;对于给定的有向图G(V&#xff0c;E),求任意一对顶点之间的最短路径。 可以求解得到的 的递推公式&#xff1a; #include <stdio.h> #include <stdlib.h> const int FINITY 5000; const int M 20; typedef struct {ch…

backbone学习总结(二)

今天来看下backbone的路由控制的功能。其实个人感觉backbone&#xff0c;模块就那么几个&#xff0c;熟悉它的框架结构&#xff0c;以及组成&#xff0c;就差不多。 废话不多说&#xff0c;我们来看看还剩下的功能。 关于路由和历史管理 通过 Backbone.Router.extend 来创建路由…

人工智能--野人过河

课程简介 人工智能&#xff08;Artificial Intelligence&#xff09;&#xff0c;英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的定义可以分为两部分&#xff0c;即“人工”和“智能”。“人工”比较好…

java对cookie的操作

原文&#xff1a;http://www.cnblogs.com/muzongyan/archive/2010/08/30/1812552.html java对cookie的操作比较简单&#xff0c;主要介绍下建立cookie和读取cookie&#xff0c;以及如何设定cookie的生命周期和cookie的路径问题。 建立一个无生命周期的cookie&#xff0c;即随着…

【ACM】POJ 3069

【问题描述】 Saruman the White must lead his army along a straight path from Isengard to Helm’s Deep. To keep track of his forces, Saruman distributes seeing stones, known as palantirs, among the troops. Each palantir has a maximum effective range of R u…

sparkCore源码解析之思维脑图

2019独角兽企业重金招聘Python工程师标准>>> 在学习sparkCore时&#xff0c;有几个模块的概念理解不是很透彻&#xff0c;故对照源码进行学习&#xff0c;并将结果一脑图的形式呈现&#xff0c;方便后续的持续学习。 详细内容见&#xff1a; sparkCore源码解析之blo…

pangilin 安装编译

make pangolin 的时候报错 ootsun:/home/sun/AR/orb/Pangolin-0.5/build# make [ 1%] Building CXX object src/CMakeFiles/pangolin.dir/log/packetstream.cpp.o /home/sun/AR/orb/Pangolin-0.5/src/log/packetstream.cpp: 在函数‘void pangolin::WaitUntilPlaybackTim…

PHP实现求阶乘

function factorial ($x){if ($x > 1) {$s $x * factorial ($x - 1);} else {$s $x;}return $s; }$x 100;echo $x."的阶乘的为".factorial($x);转载于:https://blog.51cto.com/chensenlin/1854679

【ACM】杭电OJ 2064(汉诺塔III)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2064 思路&#xff1a; 1、将n-1个盘从A移到C f(n-1)次 2、将第n个从A移到B 1次 3、将n-1个盘从C移到A f(n-1)次 4、将第n个从B移到C 1次 5、将n-1个盘从A移到C f(n-1)次 #include<cstdio> #inclu…

文件上传至阿里云

public static String uploadFile2OSS(InputStream instream, String fileName) throws IOException {String imageName null;OSSClient ossClient null;try {ClientConfiguration conf new ClientConfiguration();// 请求超时时间设置conf.setConnectionTimeout(5000);// 请…

ORB-SLAM2安装

安装顺利与否可能会与Ubuntu版本有关。&#xff08;ubuntu16.04 gcc4.8.5这个很重要偶&#xff0c;本班的直接决定Pangolin能不能安装成功&#xff0c;如果遇到哦问题的朋友可以参考一下链接 http://blog.csdn.net/Darlingqiang/article/details/78928873&#xff09;亲测可用…

iOS 系统分析(一) 阅读内核准备知识

原文出自【听云技术博客】&#xff1a;http://blog.tingyun.com/web/a... 0x01 iOS体系架构1.1 iOS 系统的整体体系架构 用户体验( The User Experience layer )&#xff1a;SpringBoard 同时支持 Spotlight。 应用软件开发框架&#xff08;The Application Frameworks layer&a…

【数据结构】拓扑排序

如果一个有向图中没有包含简单的回路&#xff0c;这样的图为有向无环图。 图中的顶点代表事件&#xff08;活动&#xff09;&#xff0c;图中的有向边说明了事件之间的先后关系。这种用顶点表示活动&#xff0c;用弧表示活动时间的优先关系的有向图称为顶点表示活动的网&#…

Java8自定义条件让集合分组

** 将一个指定类型对象的集合按照自定义的一个操作分组&#xff1b; 每组对应一个List、最终返回结果类型是:List<List<T>> param <T>*/static class GroupToList<T> implements Collector<T, List<List<T>>, List<List<T>&g…

ROS_Kinetic ubuntu 16.04

ROS_Kinetic系列学习(一)&#xff0c;在ubuntu 16.04安装ROS Kinetic。 http://wiki.ros.org/kinetic/Installation/Ubuntu 通过网页快速了解Linux&#xff08;Ubuntu&#xff09;和ROS机器人操作系统&#xff0c;请参考实验楼在线系统如下&#xff1a; 纯净定制版镜像已经…

android 获取手机GSM/CDMA信号信息,并获得基站信息

本文转自&#xff1a;http://software.intel.com/zh-cn/blogs/2011/12/16/android-gsmcdma/ 在Android中我们常用的轻松获取WIFI信号列表&#xff0c;那如何获取CDMA或者GSM的手机信号呢&#xff1f;系统提供了TelephonyManager类&#xff0c;此类非常丰富&#xff0c;基本你所…

【数据结构】关键路径

在有向图中&#xff0c;如果用顶点表示事件&#xff0c;弧表示活动&#xff0c;弧上的权值表示活动持续的时间&#xff0c;这样的活动称为边表示活动的网&#xff0c;简称AOE网&#xff08;Activity On Edge&#xff09;。通常可以用AOE网来估算工程的完成时间&#xff0c;他不…

呼伦湖国家级自然保护区管理局投放草料保野生黄羊过冬

图为保护区工作人员正在观测黄羊的生活轨迹并记录数据。 王艳清 摄 图为保护区工作人员正在观测黄羊的生活轨迹并记录数据。 王艳清 摄 中新网呼伦贝尔1月16日电 (记者 李爱平)中国北方正是最为寒冷的时节&#xff0c;呼伦湖国家级自然保护区管理局内的60只野生黄羊正在面临食草…

buildroot httpd php

/********************************************************************* buildroot httpd php* 说明&#xff1a;* 在buildroot中选择了php&#xff0c;但是在测试的时候发现总是出现下面这行* 错误&#xff0c;库是存在的&#xff0c;但是却没有放对…

VS快速注释多行 以及 取消

快速注释多行&#xff1a;Ctrl K 然后 Ctrl C 快速取消多行注释 &#xff1a;Ctrl K 然后 Ctrl U