图论_二分图匹配
TouchDreamer
这个作者很懒,什么都没留下…
展开
-
二分图匹配
算法理解 关于二分图匹配有2种算法,一种是建立源点和汇点,用网络流解决,昨天大致看了一下,但是网络流自己也没有学特别好,所以自己就用匈牙利算法,好理解并且容易写。给出我看的时候用的博客,写的好并且容易理解。二分图匹配,但是我感觉实现用的好像跟交错轨不怎么想,虽然思想上是那样,但是实际上利用了一种贪心的思想,就是每次找到一个点看能不能建立新的边,如果可以那么很明显匹配数增加一,还有一种解决方法就是原创 2016-09-03 11:21:03 · 259 阅读 · 0 评论 -
POJ 3041 Asteroids(二分图匹配)
题目分析 给出一个太空棋盘N*N,并且有K个星球位于这个棋盘上,给出这些星球的位置,然后让你摧毁这些星球,你每次选定一个点,然后你就可以摧毁这个点所在行或者所在列的全部星球。这样我们将所有星球的坐标(x,y)建立有向边,那么很明显这是一个二分图,而题目想要求的正是该二分图的最小点覆盖,最先点覆盖等于最大匹配,那么就已经很明显了。#include <cstdio>#include <cstri原创 2016-09-03 11:53:12 · 228 阅读 · 0 评论 -
HDU 5727 Necklace(二分图匹配)
题目分析 根据阴珠子和阳珠子的互斥关系来建立二分图,但是大家发现如果是拿阴和阳来建立二分图很难建立,这里面我们首先对阴珠子进行全排列,然后根据阴珠子所在的位置,找到每一个位置上有哪些阳珠子能放,并且建立边,这样一个二分图就出来,很明显求出二分图的最大匹配,然后用N-二分图的最大匹配就是所求的答案,然后找到这些答案的最小值输出即可。#include <cstdio>#include <cstr原创 2016-09-08 09:35:13 · 238 阅读 · 0 评论 -
HDU 5943 Kingdom of Obsession(2016年中国大学生程序设计竞赛(杭州)),好题
题目分析 这道题首先感觉就是一个映射问题,但是我们发现n和s都很大,但是通过分析我们会发现,如果s+1,s+2......s+n−1,s+ns+1,s+2......s+n-1,s+n中如果有2个素因子那么显然是不可行的,又因为20亿以内相邻的2个素数的最大差值不会超过500,所以这样就很好处理了,2分图跑一边就可以了,但是这样还是不合理,因为如果n>sn>s,那么很明显我们只用判断1,2,3.原创 2016-11-09 19:42:05 · 337 阅读 · 0 评论 -
Codeforces Round #383 (Div. 2)
A. Arpa’s hard exam and Mehrdad’s naive cheat 找规律即可。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int main(){ int n; while(scanf("%d", &n)原创 2016-12-16 12:21:26 · 281 阅读 · 0 评论