题目链接:https://vjudge.net/problem/UVA-11324
题意:给一张有向图G,求一个节点数最大的结点集,使得该结点集中任意两个结点u和v满足:要么u可以到达v,要么v可以到达u(或者u和v相互可达)
思路:首先求出图的强连通分量,并把其收缩点得到scc图,每个scc结点权值为它的节点数。则问题转化成了,给出一个DAG图,各点权值已知,求一条权值最大的路径。可以用dp进行求解。
#include<cstdio>
#include<cstring>
#include<string>
#include<cctype>
#include<iostream>
#include<set>
#include<map>
#include<cmath>
#include<sstream>
#include<vector>
#include<stack>
#include<queue>
#include<bitset>
#include<algorithm>
#define fin(a)