python最大团问题
回溯法,编写最大团问题
描述:团就是最大完全子图。(极大团)
给定无向图G=(V,E)。如果U包含于V,且对任意u,v属于U且有(u,v)属于E,则称U是G的完全子图。
G的完全子图U是G的团当且仅当U不包含在G的更大的完全子图中,即U就是最大完全子图。
G的最大团是指G中所含顶点数最多的团。
// 最大团: V中取K个顶点,两点间相互连接
// 最大独立集: V中取K个顶点,两点间不连接
// 最大团数量: 补图中最大独立集数
global v,e,graph#v为顶点数,e为边数,graph为邻接矩阵
global cn,bestn#cn当前团的顶点数,bestn最大团的顶点数
global corder,bestorder#corder当前团的顶点集,bestorder最大团的顶点集
global vis#记录已选的顶点
vis=[0 for i in range(100)]
corder=[0 for i in range(100)]
bestorder=[0 for i in range(100)]
def istuan(cur):global vis,graphfor i in range(cur):if((vis[i]==1) and(graph[i][cur]==0)):return 0return 1def backtrack(cur):global v,bestn,corder,cn,vis#python中定义全局变量,先定义,使用时再次声明# if (cur>v-1):if(cur>v):if (cn>bestn):bestn=cnfor i in range(v+1):if corder[i]!=0:print(corder[i],'',end='')print()returnif(istuan(cur)):cn+=1vis[cur]=1corder[cur]=curbacktrack(cur+1)cn-=1vis[cur]=0corder[cur]=0#回溯到i,为进入右子树做准备if ((cn+v-cur)>bestn):#剪右枝条件,否则向右递归backtrack(cur+1)
if __name__=='__main__':global graph,cn,bestncn=0bestn=0v=5;e=7# graph=[[0,1,0,1,1],[1,0,1,0,1],[0,1,0,0,1],[1,0,0,0,1],[1,1,1,1,0]]graph=[[0 for i in range(v+1)] for j in range(v+1)]print(graph)for k in range(1,e+1):i,j=map(int,input().split())graph[i][j]=1print(graph)backtrack(1)print(bestn)
python最大团问题相关推荐
- 日常办公会用到的python模块-Python如何去实际提高工作的效率?也许这个会有用!...
4月初,班主任的某次周会议上,华华关切的问了一下:最近班主任们有什么难题吗?就是花费了你们大部分时间的工作!我们Python天团可以帮你们解决问题. 班主任大主管星星说:有.目前有一个大难题.我们每天 ...
- python快速自学方式-Python怎样自学?
多看一些网上的视频,书籍基础了解下python内容,加入一个自学团,在里面找到学习伙伴,坚持每天打卡,多看一些大神们的经验分享,多多参加实战练习,上机操作. 学习先导1. 算法基础知识(算法所具有的特 ...
- python编程入门指南怎么样-如果想学python怎么入门?
python入门相对容易对可以干很多事,是一门方便的工具语言. 在学习python之前,肯定都自己了解过这门语言,也知道python有很多学习方向.比如数据采集方向(爬虫),或者是Web开发方向,也可 ...
- python基础知识思维导图-python基础知识思维导图1
python的发展史 - 1989年,Guido(龟叔),为ABC语言写插件,Monty Python喜剧团: - 1990年,发布python第一个版本: - 2001年,2.x: (pyt ...
- 编程入门python语言是多大孩子学的-Python 适合初学编程的人学吗?
Python是一门比较适合零基础人员学习的编程语言,只要你想学,愿意学,并选择一个好的学习途径,就一定能学会.下面我分享一下学习python的步骤: 1.:Python开发基础 Python基础语法. ...
- python写一个表白程序_520最实用的Python表白程序
今天是520,看到公众号里到处都是各种表白. 我也来凑凑热闹. 我记得以前我写过一篇文章关于turtle的, from turtle import * import turtle from tkint ...
- python是什么 自学-Python怎样自学?
多看一些网上的视频,书籍基础了解下python内容,加入一个自学团,在里面找到学习伙伴,坚持每天打卡,多看一些大神们的经验分享,多多参加实战练习,上机操作. 学习先导1. 算法基础知识(算法所具有的特 ...
- python基础之语言发展历史
博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...
- Python 学习1
python的发展史 1989年,Guido(龟叔),为ABC语言写插件,Monty Python喜剧团: 1990年,发布python第一个版本: 2001年,2.x: (python2.7 --& ...
最新文章
- vb 6.0服务器组件选哪个,VB 6.0包括几种版本?分别是什么?
- 谈谈对Spring IOC的理解
- win2008文件服务器fs,文件服务器 fs
- 推荐Datawhale整理的秋招求职攻略
- Android Fragments 详细使用
- Tomcat根据JSP生成Servlet机制解析
- 30秒的PHP代码片段-MATH
- mel滤波器组频率响应曲线_非常好的滤波器知识总结,值得一看!
- [HTML5]使用Box2dWeb模拟飞行箭矢
- FusionCharts 3.2.1 flash 图表展示、数据钻取
- Vue项目中使用echarts教程
- 苹果手机屏幕镜像_苹果手机还能一键投屏?点一下小屏变大屏幕,看剧是真畅快...
- 图信号处理之图拉普拉斯矩阵的含义
- python股票回测_从啥都不会试着用python做均线回测--1
- 云计算通俗解释,什么叫云计算
- uni-app注册 page-head
- delphi 简单的 fastreport 设计
- 华为发放20亿奖金,人均10万!你还想逃离996吗?
- MSSQL Server查询优化方法
- Python攻防-暴力破解ZIP加密文件的密码