UVA-The Largest Clique 11324

硬件工程师入门基础知识(一)基础元器件认识(二) 我们的电路输入一般是只有两种状态,0V 或者是其它的高电平(1.8V,3.3V,5V 等),截止状态一般不用怎么考虑,因为如果让三极管的 Vbe=0,自然就截止了,重要的是饱和状态如何保证。也就是说只要 Rb 阅读详情

最大团,

problem:给一个有向图G, 求一个节点数最大的点集, 使得该点集中的任意两个节点至少要有一条路径

->

那么可知, G中的SCC要么都选, 要么都不选(不选是因为这是有向图选了之后的无法纳入范围), 那么问题就简单了

将每个SCC缩成一个点, 变成在DAG上DP

->

code:

#include <stack>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

#define N 50005
#define next Next
#define begin Begin
#define mem(a) memset(a, 0, sizeof(a))
#define rep(i, j, k) for(int i=j; i<=k; ++i)
#define erep(i, u) for(int i=begin[u]; i; i=next[i])
void read(int &x){
	char c=getchar();x=0;while(c<'0' || c>'9')c=getchar();
	while(c>='0' && c<='9')x=x*10+c-'0', c=getchar();
}

int begin[N<<1], to[N<<1], next[N<<1], e;
void add(int x, int y){
	to[++e]=y;
	next[e]=begin[x];
	begin[x]=e;
}
int n, m, low[N], pre[N], sccid[N], scc_cnt, clock_;
stack<int>s;
void dfs(int u){
	pre[u]=low[u]=++clock_;
	s.push(u);
	erep(i, u){
		int v=to[i];
		if(!pre[v])dfs(v),low[u]=min(low[u], low[v]);
		else if(!sccid[v])low[u]=min(low[u], pre[v]);
		//notice! array low can only reach the point which is in the same SCC;   
	}
	if(pre[u] == low[u]){
		scc_cnt++;
		while(1){
			int x=s.top();s.pop();
			sccid[x]=scc_cnt;if(x == u)break;
		}
	}
}
void solve(){
	clock_ = scc_cnt = 0;
	mem(pre);mem(sccid);
	rep(i, 1, n)
		if(!pre[i])
			dfs(i);
}

int f[1005], w[1005];
bool p[1005],vis[1005][1005];
int dp(int u){
	if(f[u]>=0)return f[u];
	f[u]=w[u];
	rep(v, 1, scc_cnt)
		if(v!=u && vis[u][v])f[u]=max(f[u], w[u]+dp(v));
	return f[u];
}
int main(){
#ifndef ONLINE_JUDGE
	freopen("data.in", "r", stdin);
	freopen("result.out", "w", stdout);
#endif
	int _;
	read(_);
	while(_--){
		e=0;
		mem(begin);
		memset(f, -1, sizeof(f));
		mem(vis);mem(w);
		read(n);read(m);
		rep(i, 1, m){
			int u, v;
			read(u);read(v);
			add(u, v);
		}
		solve();
		rep(i, 1, n){
			w[sccid[i]]++;
			erep(j, i)
				vis[sccid[i]][sccid[to[j]]]=true;
		}
		int res=0;
		rep(i, 1, scc_cnt)
			res=max(res, dp(i));
		printf("%d\n", res);
	}
	return 0;
}

ROS从入门到精通0-1:教程导读 ROS概念太多太复杂?ROS从入门到精通系列订阅必看 阅读详情

相关推荐

Materials studio中的简单聚合物的建立及盒子的弛豫

涉及模块 Amorphous Cell-construction Forcite-caculation Build Polymers-Homopolymer

快乐学术猿 3万+

The Largest Clique(tarjan+dp)

题目链接:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2299 题目大意:给定一个图,求最大的一个点集合,这个点集合的性质:任意选择两个点u,v,满足从u到v有路径或者从v到u有路径。 思路:一个强联通分量内的所有的点肯定是满足性质的,先考虑用tarjan缩点,现在整个图就变成了DAG,每个点赋予一个权值,这个权值就是该强联通分量原来所含有的一个

l6lyk66的博客 218

Apple Pay不能添加卡,不一定是卡的问题,有可能是设备的问题

Apple Pay不能添加卡,不一定是卡的问题,有可能是设备的问题。

wyxtx的博客 3435

uva 11324 The Largest Clique(图论-tarjan,动态规划)

Problem B: The Largest Clique Given a directed graphG, consider the following transformation. First, create a new graphT(G)to have the same vertex set asG. Create a directed edge betwee...

weixin_30745553的博客 214

uniapp+openlayers集成天地图实战:renderjs通信陷阱与性能优化避坑指南

本文深入探讨了uniapp与openlayers集成天地图时的renderjs通信陷阱与性能优化策略。通过实战案例解析了renderjs的特殊通信机制、地图实例生命周期管理、图层懒加载等关键技巧,帮助开发者避免常见坑点,提升应用流畅度。特别针对多语言切换、热重载偏移等疑难问题提供了解决方案,是uniapp+openlayers开发者的实用避坑指南。

weixin_30872157的博客 362

GNU Radio系列教程(一):什么是GNU Radio?为什么我需要用GNU Radio?

目录 一、什么是软件无线电? 二、GNU Radio到底能做什么事情? 三、我如果不精通编程,还能用GNU Radio吗? 四、GNU Radio使用需要授权吗? 五、基于GNU Radio,人们已经做了取得了哪些成果? 六、数字信号处理、基带、时钟同步…这些名词是什么意思? 七、有用的链接和联系方式 GNU Radio是一个免费的开源软件工具包,该工具包提供了可用于软件无线电的信号处理模块。基于一些通用的射频前端设备,该工具包可以用来实现软件无线电系统。此外,该工具包也可以用于单纯...

无线通信实验室 1万+

UVA11324 The Largest Clique,有向图,最大团的结点数

点击打开链接 有向图 把强联通分量缩点后得到一个DAG,然后DP。 #include #include #include #include #include #include using namespace std; const int maxn = 1000 + 10; vector G[maxn]; int dfn[maxn], low[maxn], sccno

天亮说晚安 2303

HyperLedger Fabric实战(一):基础环境构建

简介 本文将介绍从一台裸机上面如何构建出一个可用的Fabric网络(单机版,非测试网络)。 基础环境构建 Fabric组件安装

yindarui 1万+

UVA The Largest Clique (强联通分量 + 拓扑排序)

题目链接 题意:给你一张有向图,求一个节点数最大的节点集,使得该节点集中任意两个节点u,v。满足:要么u可达v,要么v可达u,要么互达。 思路:重新构造图,求出图中的所有scc,把同一个scc看做一个点,这样得到一张新的DAG,然后用拓扑排序求出DAG最长路即为答案。 #include <bits/stdc++.h> #define pb push_back using n...

我是蒋卫升呀~ 257

【文献阅读:信道估计】Deep Residual Learning Meets OFDM Channel Estimation

基于深度学习的信道估计技术

weixin_43178683的博客 1753

【云原生进阶之容器】第六章容器网络6.6.2--Cilium部署

部署Cilium非常简单,可以通过单独的yaml文件部署全部组件(目前我使用了这个方式部署了1.7.1版本),也可以通过Helm Chart一键完成。重要的是部署环境和时机:官方建议所有部署节点都使用Linux最新稳定内核版本,这样所有的功能都能启用。作为一个Kubernetes网络组件,它应该在部署Kubernetes其他基础组件之后,才进行部署。

junbaozi的专栏 792

The Largest Clique

题目链接 题意: 给定一张有向图G,求一个节点数最大的节点集,使得该节点集中任意两个节点u和v满足:要么u可以到达v,要么v可以到达u(相互到达也可以) 输入:测试组数T;第一行节点数n和边数m;m行每行两个整数表示一条有向边,点从1编号分析: 观察这个特点,那么对于原图中存在的强连通分量,肯定是满足题意的。那么接下来就是缩点,之后的图就是若干个DAG。求节点数最多的路径,也就是在

Confidence的专栏 1679

短距激光雷达专业讲解:定义、架构、技术路线与选型逻辑

短距激光雷达,通常指有效探测距离不大于 50 米的激光雷达产品。它主要服务于服务机器人、扫地机器人、AGV/AMR、无人机、智能手机、AR/VR、工业安全等中近距感知场景。它与车载中长距激光雷达的最大区别,不是“探测距离短一点”,而是整套工程目标不同。短距激光雷达的核心诉求是:小体积、低成本、高帧率、强抗光、嵌入式集成。单价从百元级扫地机模组,到数千元级工业 3D 雷达不等。一句话概括:中长距车载激光雷达追求远距离、高可靠、车规寿命;

致力于lidar应用开发 151

uva 11324 The Largest Clique

  vjudge 上题目链接:uva 11324   scc + dp,根据大白书上的思路:"同一个强连通分量中的点要么都选,要么不选。把强连通分量收缩点后得到SCC图,让每个SCC结点的权等于它的结点数,则题目转化为求 SCC 图上权最大的路径。由于 SCC 图是一个 DAG, 可以用动态规划求解。"   一开始我理解成了求所有结点的权值和,后来才明白所求的结果一定是 scc 上...

aidiao7379的博客 160

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

UVA 11324 The Largest Clique

题目大意:给一张有向图,求一个结点数最大的结点集,使得该结点集中的任意两个结点u和v满足:要么u可以达v,要么v可以达u,(u,v相互可达也行)。 思路:不难发现,如果要使得结点数最大,那么同一个强连通分量中的点,要么全选,要么全不选,让每一个SCC结点的权等于它的结点数,则题目可以转换为求SCC图上权的最长路径,SCC图是DAG图,可以同动态规划求解。 一开始,Tarjan写错了,WA了2次

Wall_F的专栏 888

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

『题解』UVa11324 The Largest Clique

原文地址 Problem Portal Portal1:UVa Portal2:Luogu Portal3:Vjudge Description Given a directed graph \(\text{G}\), consider the following transformation. First, create a new graph \(\text{T(G)}\) to have t...

weixin_30839881的博客 130

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

UVA 11324 The Largest Clique

Problem B: The Largest Clique Given a directed graph G, consider the following transformation. First, create a new graphT(G) to have the same vertex set as G. Create a directed edge betweentwo ver

u013023344的专栏 434

[UVA 11324]The Largest Clique[SCC][缩点]

题目链接:[UVA 11324]The Largest Clique[SCC][缩点] 题意分析: 找到最多的节点集合,使得集合内任意两个点之间都有一条路径使得u->v或者v->u。输出该集合的结点个数。 解题思路: 有向图中,强连通分量中的点肯定是互相可达的,所以选择了其中的一个点,必定连通分量中其它的点也要选择,所以我们可以把这些点看作同一个点进行缩点。 那么原问题就变成,从图中找一

闲停 540

UVA11324 The Largest Clique

有向图中寻找一个点最多的子图,使得任意两点均可达(至少存在一条路径由一点通向另一点) 关键词:建立scc缩点图、有向图任意两点可达的最大子图、dag图最长路径

acmer的随记 401

UVA 11324 - The Largest Clique(强连通分量+缩点)

UVA 11324 - The Largest Clique 题目链接 题意:给定一个有向图,要求找一个集合,使得集合内随意两点(u, v)要么u能到v,要么v能到u,问最大能选几个点 思路:强连通分量,构造出scc之后,缩点,每一个点的权值是集合点个数,然后做一遍dag找出最大权值路径就可以 代码: #include <cstdio> #in...

weixin_30685029的博客 74

The Largest Clique (uva11324)

求图的缩点 #include<bits/stdc++.h> using namespace std; struct my{ int v,next; }; const int maxn=10000+10; const int maxn1=100000+10; my bian[maxn1]; my bian2[maxn1]; stack<i...

allia990718的博客 103

Uva 11324 The Largest Clique

题意: 给你一张有向图G, 求一个最大的节点集,使得该节点集中任意两个点u, v,满足:u可以到达v, 或者v可以到达u(u、v相互到达也可以)。 分析: 在最优的方案中,每一个强连通分量中的点要么都选,要么都不选,那么我们就可以先把所有的强连通分量计算出来,然后再将不同的强连通分量建一个新图,则最优解就是一个Dag上的DP了 代码如下:#include<iostream> #include

Free keyboard 跳动的键盘 459

uva 11324 - The Largest Clique(缩点 + dp)

Problem B: The Largest Clique Given a directed graph G, consider the following transformation. First, create a new graph T(G) to have the same vertex set as G. Create a directed edge between two v

勿忘初衷 1570

uva 11324 - The Largest Clique(强联通图+拓扑)

题目链接:uva 11324 - The Largest Clique 强连通缩点后,以缩掉的节点数作为新点的权值,缩完点之后就是一张DAG图,然后做拓扑排序。 #include #include #include #include #include #include using namespace std; const int maxn = 1005; int

不慌不忙、不急不躁 573

UVA11324 The Largest Clique

通往另一个世界的虫洞 tarjan缩点+dp求最长路 #include #include #include #include using namespace std; struct edge{ int u, v, next; }e[55555]; const int N = 1111; int pre[N], lowlink[N], sccno[N], dfs_clock, sc

浅雨歌 922

The Largest Clique UVA - 11324

题文:https://vjudge.net/problem/UVA-11324 题解:   这个题目首先可以发现,只要是一个强连通分量,要么都选,要么都不选,将点权看成强连通分量的点数,所以这个题目就转化成了DAG上的最大路。   稍微dp一下就好了。 代码: #include <cstdio> #include <iostream> #includ...

weixin_34321977的博客 110
上一篇: UVA-Proving Equivalences La 4287
下一篇: HNOI 2002 营业额统计(Splay入门)
__Galaxy
博客等级 码龄10年 8粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值