集训队专题(5.1)1001 Maximum Clique

本文探讨了最大团问题的解决方法,介绍了DFS搜索的基本思路,并通过剪枝优化提高了算法效率。给出了一个求解最大团的模板代码,适用于多种最大团问题。详细解释了剪枝策略和代码实现细节。

Maximum Clique

Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3490    Accepted Submission(s): 1873


Problem Description
Given a graph G(V, E), a clique is a sub-graph g(v, e), so that for all vertex pairs v1, v2 in v, there exists an edge (v1, v2) in e. Maximum clique is the clique that has maximum number of vertex.
 

Input
Input contains multiple tests. For each test:

The first line has one integer n, the number of vertex. (1 < n <= 50)

The following n lines has n 0 or 1 each, indicating whether an edge exists between i (line number) and j (column number).

A test with n = 0 signals the end of input. This test should not be processed.
 

Output
One number for each test, the number of vertex in maximum clique.
 

Sample Input
  
5 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0
 

Sample Output
  
4
 

Author
CHENG, Long
 

Source
 

这就是一道纯粹的最大团问题。首先,小编这里给出教科书版本的对一些图论基本名词的介绍:

1.无向完全图:设G=(V,E)为N阶无向图,若G中的任何顶点都以其余的N-1个顶点相邻,则称G为N阶无向图。  

2.完全子图:给定G=(V,E),如果U为G的子图并且是完全图,则称为完全子图。

3.团:设U为G完全子图,当图U不包含G的更大完全子图时,称U是G的一个团。

4.最大团:G中所含顶点数最多的团。

有关求最大团的方法,一般的做法就是直接进行DFS搜索,而最朴素的DFS搜索便是:首先设最大团为一个空团,往其中加入一个顶点,然后依次考虑每个顶点,查看该顶点加入团之后仍然构成一个团,如果可以,考虑将该顶点加入团或者舍弃两种情况,如果不行,直接舍弃,然后递归判断下一顶点。

当然这样做肯定是对的,同样也能AC的了,但是你会发现运行时间会是几秒,相当的慢。不难想到,原因是因为我们搜索了大量肯定不会是极大团的点,所以在优化方面我们需要进行必要的剪枝。

很容易想到一个很简单的剪枝,就是当剩下的点全部加入当前团中都不大于当前最大团时就可以直接return。

再进行思考,因为这里我们的是无向图,所以假如1,2,3,4,5这五个点构成了极大团,那我们在搜索的时候可能就会按不同的顺序搜索了5! = 120次,小编这里把图当做有向图,点全部都从小编号点搜索到大编号的点,这样我们的方法就进一步的得到了优化。当然,小编这样的优化并不一定是最好的优化方法,小编也是跑了1000MS+才AC的,有些大神只需要几百MS就跑完了(牛逼啊!!!)。

这里小编给出我自己的最大团模板,很多最大团的题,都是可以直接套模板的。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=106;
int g[maxn][maxn],dp[maxn],stk[maxn][maxn],mx;
//int path[maxn],res[maxn];//记录最大团的点 
int dfs(int n,int ns,int dep)//
{
	if(ns == 0)
	{
		if(dep > mx)
		{
			//swap(path,res);
			mx = dep;
			return 1;
		}
		return 0;
	}
	int i,j,k,p,cnt;
	for(i=0; i<ns; i++)
	{
		k = stk[dep][i];
		cnt = 0;
		if(dep + n - k <= mx) return 0;// 剪枝1, 若当前 顶点数量cnt 加上还能够增加的最大数量 仍小于 best则 退出并返回
		if(dep + dp[k] <= mx) return 0;// 剪枝2, 若当前 顶点数量cnt 加上 包含adj[i]的最大团顶点数 仍小于 best则 退出并返回
		for(j=i+1; j<ns; j++)
		{
			p = stk[dep][j];
			if(g[k][p]) stk[dep+1][cnt++] = p;
		}
		//path[dep+1] = k;
		if( dfs(n,cnt,dep+1) ) return 1;
	}
	return 0;
}
int clique(int n)
{
	int i,j,ns;
	for(mx=0, i=n-1; i>=0; i--)
	{
		//path[1] = i;
		for(ns=0, j=i+1; j<n; j++)// 遍历 [i+1, n] 间顶点
			if(g[i][j]) stk[1][ns++] = j;
		dfs(n,ns,1);
		dp[i] = mx;// 得出顶点 i, 出发构成最大团 中顶点数量
	}
	return mx;
}
int main()
{
	int n;
	while(scanf("%d",&n)&&n!=0)
	{
		for(int i=0; i<n; i++)
			for(int j=0; j<n; j++)
				scanf("%d",&g[i][j]);
		int ans = clique(n);
		printf("%d\n",ans);
		/*for(int i=1; i<=ans; i++)
		{
			printf("%d",res[i]+1);
			if(i == ans) printf("\n");
			else printf(" ");
		}*/
	}
	return 0;
}


内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
内容概要:本文系统阐述了企业新闻发稿在生成式引擎优化(GEO)时代下的全渠道策略与效果评估体系,涵盖当前企业传播面临的预算、资源、内容与效果评估四大挑战,并深入分析2025年新闻发稿行业五大趋势,包括AI驱动的智能化转型、精准化传播、首发内容价值提升、内容资产化及数据可视化。文章重点解析央媒、地方官媒、综合门户和自媒体四类媒体资源的特性、传播优势与发稿策略,提出基于内容适配性、时间节奏、话题设计的策略制定方法,并构建涵盖品牌价值、销售转化与GEO优化的多维评估框架。此外,结合“传声港”工具实操指南,提供AI智能投放、效果监测、自媒体管理与舆情应对的全流程解决方案,并针对科技、消费、B2B、区域品牌四大行业推出定制化发稿方案。; 适合人群:企业市场/公关负责人、品牌传播管理者、数字营销从业者及中小企业决策者,具备一定媒体传播经验并希望提升发稿效率与ROI的专业人士。; 使用场景及目标:①制定科学的新闻发稿策略,实现从“流量思维”向“价值思维”转型;②构建央媒定调、门户扩散、自媒体互动的立体化传播矩阵;③利用AI工具实现精准投放与GEO优化,提升品牌在AI搜索中的权威性与可见性;④通过数据驱动评估体系量化品牌影响力与销售转化效果。; 阅读建议:建议结合文中提供的实操清单、案例分析与工具指南进行系统学习,重点关注媒体适配性策略与GEO评估指标,在实际发稿中分阶段试点“AI+全渠道”组合策略,并定期复盘优化,以实现品牌传播的长期复利效应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值