博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva11324 The Largest Clique --- 强连通+dp
阅读量:6705 次
发布时间:2019-06-25

本文共 908 字,大约阅读时间需要 3 分钟。

给一个有向图G,求一个子图要求当中随意两点至少有一边可达。

问这个子图中最多含多少个顶点。

首先找SCC缩点建图。每一个点的权值就是该点包括点的个数。

要求当中随意两点可达,实际上全部边仅仅能同方向,不然一定有两点不可达,

这样题目又转换成求DAG图最长路的问题了。

然后从入度为0的点開始记忆化搜索。dp[i]表示以i为根最多包括多少点。

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f#define eps 1e-6#define ll __int64#define M 1010using namespace std;int sta[M],top; //Tarjan 算法中的栈bool vis[M]; //检查是否在栈中int dfn[M]; //深度优先搜索訪问次序int low[M]; //能追溯到的最早的次序int ccnt; //有向图强连通分量个数int id; //索引號vector
e[M]; //邻接表表示vector
part[M]; //获得强连通分量结果int inpart[M]; //记录每一个点在第几号强连通分量里int degree[M]; //记录每一个强连通分量的度vector
edge[M];//缩点后建图int ans,n,m,dp[M],in[M],point[M];void tarjan(int x){ int i,j; dfn[x]=low[x]=id++; vis[x]=1; sta[++top]=x; for(i=0;i
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5364945.html,如需转载请自行联系原作者 
你可能感兴趣的文章
HBase入门基础教程之单机模式与伪分布式模式安装(转)
查看>>
iOS开发UI篇—UIWindow简单介绍
查看>>
jquery中怎么删除<ul>中的整个<li>包括节点
查看>>
JQuery中 json 和字符串直接相互转换
查看>>
iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示
查看>>
php编程规范
查看>>
由浅入深探究mysql索引结构原理、性能分析与优化
查看>>
nmap端口状态解析
查看>>
物联网操作系统HelloX开发人员入门指南
查看>>
Layout Inflation :Unconditional layout, inflation from view adapter
查看>>
UIImageView圆角,自适应图片宽高比例,图片拉伸,缩放比例和图片缩微图
查看>>
swift调用相机和相册
查看>>
#AOS应用基础平台# 添加了用户自己定义快捷菜单在平铺布局下的用户自己定义排序管理...
查看>>
The 2013 South America/Brazil Regional Contest 题解
查看>>
第1章 开发环境安装和配置(一):概述
查看>>
WindowManager$BadTokenException: Unable to add window permission denied for this window type
查看>>
Java中Volatile的作用
查看>>
美食网站响应式精美模板
查看>>
leetcode第一刷_Maximal Rectangle
查看>>
ASP.NET MVC5+EF6+EasyUI 后台管理系统--工作流演示截图
查看>>