【问题描述】 对于N个整数0, 1, ……, N-1,一个变换序列T可以将i变成Ti,其中 定义x和y之间的距离。给定每个i和Ti之间的距离D(i,Ti), 你需要求出一个满足要求的变换序列T。如果有多个满足条件的序列,输出其中字典序最小的一个。 说明:对于两个变换序列S和T,如果存在p<N,满足对 ...
分类:
其他好文 时间:
2017-04-13 15:14:23
阅读次数:
169
学了二分图,整个人都不好了,赶紧趁热打铁敲个日志巩固下记忆。二分图,就是将一个图分为2个点集后,每个点集内部任意两点之间不存在边,即每一条边都连接在不同点集中的两个点。匹配,是一个边集,且任两条边不相邻,即不存在公共点。相关算法: ①最大匹配问题: 顾名思义,就是找到给定图中边数最多的匹配。解决这一 ...
分类:
其他好文 时间:
2017-04-13 08:56:44
阅读次数:
260
二分图匹配。 先检查每个数字$1$的个数是否满足条件,不满足直接就是无解。剩下的情况可以建立二分图,如果现在的某一列可以对应于原图的某一列,那么建边。如果二分图的最大匹配是$7$,则有解,否则误解。 ...
分类:
其他好文 时间:
2017-04-10 21:47:58
阅读次数:
208
题目描述 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个数字不能在同一行或同一列,现小凸想知道选出来的N个数中第K大的数字的最小值是多少。 输入 第一行给出三个整数N,M,K 接下来N行,每行M个数字,用来描述这个矩阵 输出 如题 样例输入 3 ...
分类:
其他好文 时间:
2017-04-06 20:50:16
阅读次数:
115
题目大意:n个装备,每个装备有两个属性值可以二选一,问能选出的最长的从1开始的连续正整数序列。(属性值<=10000,n<=10^6) 思路:匈牙利二分图匹配模板复习,复杂度O(10000^2)。 ...
分类:
其他好文 时间:
2017-03-30 22:52:22
阅读次数:
231
题目背景 二分图 题目描述 给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数 输入输出格式 输入格式: 第一行,n,m,e 第二至e+1行,每行两个正整数u,v,表示u,v有一条连边 输出格式: 共一行,二分图最大匹配 输入输出样例 输入样例#1: 1 1 1 1 1 输出样例#1 ...
分类:
其他好文 时间:
2017-03-30 21:57:32
阅读次数:
239
此题的二分图匹配做法很容易想,就是把属性当做s集,武器当做t集,如果该武器拥有该武器则连一条边。 那么答案就是求该二分图的最大前i个匹配。将匈牙利算法改一改,当前找不到增广路就break。 但是过这个题需要常数优化,不能每次都fillchar一遍used数组。可以用队列将使用的used点加入,然后需 ...
分类:
其他好文 时间:
2017-03-28 23:41:00
阅读次数:
230
题目大意:给定一个n个点m条边的有向无环图,问最多选多少个点使得两两之间互不到达。(n<=100,m<=1000) 思路:题目所求即最长反链,最长反链=最小链覆盖,对每个点向自己能到的点连边后,转化成最小路径覆盖,每个点拆成入点和出点后二分图匹配,又有最大二分图匹配=最小路径覆盖,问题得到解决。复杂 ...
分类:
其他好文 时间:
2017-03-21 15:21:51
阅读次数:
196
题意: 有$n \le 10^6$中物品,每种两个权值$\le 10^4$只能选一个,使得选出的所有权值从1递增,最大递增到多少 一开始想了一个奇怪的规定流量网络流+二分答案做法...然而我还不知道怎么规定流量...并且一定会T 然后发现题解中二分图匹配用了匈牙利,可以从小到大找增广路,貌似比较科学 ...
分类:
其他好文 时间:
2017-03-21 12:46:36
阅读次数:
167
男女进行二分图匹配,裸题 1 #include<stdio.h> 2 #include<string.h> 3 int now,head[1001],next[1001],point[1001],visit[1001],match[1001]; 4 5 void add(int x,int y){ ...
分类:
其他好文 时间:
2017-03-19 11:01:34
阅读次数:
166