题意:有n个人,m个关系,关系是这两个人前一个人可以跟后一个比较。
那么问你我最少分多少组可以使这个组里的人都不可以比较。
只会强联通缩点,真特么不知道怎么做,想了一个小时,网上一看,还要会偏序集的东西,有一个叫Dilworth定理的东西。
定理1 令(X,≤)是一个有限偏序集,并令r是其最大链的大小。则X可以被划分成r个但不能再少的反链。
其对偶定理称为Dilworth定理:
...
分类:
移动开发 时间:
2015-06-30 18:21:15
阅读次数:
179
题目传送门 1 /* 2 题意:第i个人选择第a[i]个人,问组成强联通分量(自己连自己也算)外还有多少零散的人 3 有向图强联通分量-Tarjan算法:在模板上加一个num数组,记录每个连通分量的点数,若超过1,则将连通点数相加 4 用总点数-ans则是零散的点 5...
分类:
其他好文 时间:
2015-06-23 17:22:52
阅读次数:
128
链接 :http://poj.org/problem?id=2186
一个联通分量里的所有的牛满足任何一个被其他牛认为是红人。强联通缩点之后 只需要找到一个且只有一个联通分量且它的出度为0 答案就是这个强联通分量点的个数。
#include
#include
#include
#include
#include
#include
#include
#include ...
分类:
移动开发 时间:
2015-05-21 14:14:19
阅读次数:
155
求强联通分量的tarjan算法应用实例 边双连通分支
分类:
其他好文 时间:
2015-05-20 18:19:54
阅读次数:
113
多与DAG上的DP之类的问题一起出现。
using namespace std;
const int MAXE = 300010;
const int MAXP = 100010;
struct N
{
int v,next;
}edge[MAXE];
int head[MAXP];
int Top;
int ty[MAXP];
int high[MAXP];
int low...
分类:
移动开发 时间:
2015-05-15 12:10:51
阅读次数:
172
输入数据处理正确其余的就是套强联通的模板了#include #include #include #include #include #include #include #include #include using namespace std;#define INF 0xfffffff#define...
分类:
Web程序 时间:
2015-04-28 15:41:31
阅读次数:
132
Problem Description:
Suppose there are N people in ZJU, whose ages are unknown. We have some messages about them. The
i-th message shows that the age of person si is not smaller than the age of pers...
分类:
移动开发 时间:
2015-04-20 09:30:01
阅读次数:
149
题意:本题描述了一片滑雪场,并且规定奶牛从一个点只能向它相邻的并且高度不大于它的点运动,现在想要在某些点对之间加上缆车使得奶牛也可以从较低点到达较高点,问最少需要多少辆这样的缆车就可以使得奶牛可以从任意一个点运动到滑雪场的每个角落。
思路:即问至少加多少条边使图变成强联通图,先缩点成DAG。
不难知道强连通分量的所有节点的入度和出度均不为0,可以统计DAG上的入度和出度为0的个数分别是a,b。...
分类:
其他好文 时间:
2015-04-19 06:33:22
阅读次数:
205