暴力/蛮力法经典例题--图的广度优先--C语言

0030算法笔记——【回溯法】最大团问题和图的m着色问题 1、最大团问题      问题描述      给定无向图G=(V, E),其中V是非空集合,称为顶点集;E是V中元素构成的无序二元组的集合,称为边集,无向图中的边均是顶点的无序对,无序对常用圆括号“( )”表示。如果U∈V,且对任意两个顶点u,v∈U有(u, v)∈E,则称U是G的完全子图(完全图G就是指图G的每个顶点之间都有连边)。G的完全子图U是G的团当且仅当U不包含在G的更大的完全子图中 阅读详情

        很常见的搜索算法,问题描述就不必了,直接上解法。

解法一--邻接矩阵--无向图:

        

         其对应的矩阵为:

        

        解法很简单,定义一个队列作为辅助数据类型,visited【】作为访问标志:1为以访问,0为未访问。先把0进队,在队不为空的循环前提下出队0,然后进队与0相连的并且visited为0的节点,重复直至队列为空。

        数据类型:

typedef struct {
	int ed[max][max];
	int vexnum, ednum;
}G;

         代码主体:

void bfs(G g,int *visited) {
	queue<int>qu;
	qu.push(0);
	visited[0] = 1;
	while (!qu.empty()) {
		int vex = qu.front();
		cout << vex << "->";
		qu.pop();
		for (int i = 0; i < g.vexnum; i++) {
			if (g.ed[vex][i] == 1 && visited[i] == 0) {
				visited[i] = 1;
				qu.push(i);
			}
		}
	}
}

解法二--邻接表--有向图:

 

 

        邻接表的广度优先算法跟邻接矩阵其实一样的,只不过矩阵遍历的是二维数组,而邻接矩阵遍历的是链表。

        数据结构:

typedef struct Vnode {
	int vex;
	struct Vnode* next;
}VN;
typedef struct Hnode {
	int vex;
	struct Vnode* first;
}HN;
typedef struct {
	HN head[max];
	int vexnum, ednum;
}ALG;

        算法主体:

void bfs_alg(ALG g, int* visited) {
	queue<int>qu;
	qu.push(0);
	visited[0] = 1;
	while (!qu.empty()) {
		int vex = qu.front();
		qu.pop();
		VN* go = g.head[vex].first;
		cout << vex << "->";
		while (go != NULL) {
			if (visited[go->vex] == 0) {
				qu.push(go->vex);
				visited[go->vex] = 1;
			}
			go = go->next;
		}
	}
}

算法学习之蛮力法 算法学习之蛮力法 文章目录算法学习之蛮力法蛮力法的思想蛮力法的基本蛮力法的优点 蛮力法的思想 蛮力法是指采用遍历技术,使用一定的策略将待求解问题的所有元素依次处理一次,其关键为依次处理所有元素,要使已处理过的元素不再被访问 蛮力法的基本 基本技术——遍历 关键——依次处理所有元素 基本的遍历对象:(1)集合(2)线性表(3)树(4)图 蛮力法的优点 逻辑清晰,编写程序简洁,容易编写 对于... 阅读详情

相关推荐

蛮力法(DFS)解决TSP问题

本资源包含“基于蛮力法(DFS)解决TSP问题”的相关代码以及TSP的城市数据。

搬砖问题(C语言程序设计)

C语言程序设计 循环控制系统

GETITdonotworry的博客 4758

【生物识别模组介绍】静脉识别模组

静脉识别技术是依据流动的静脉血液中的血红蛋白对近红外光有所吸收,通过近红外光照射手指、手掌、面部、腕部呈现的分布图像,再使用特定的算法对图像进行特征提取、分析比对,从而进行身份认证识别。静脉结构相同几率为34亿分之一,每个人的静脉结构具有独特性,而且静脉特征图像自成年后终身不变,不受外部环境、疾病等影响,是人体最稳定的生物特征之一。商务合作联系:newmagicmission@gmail.com图1.0。

upupDay's blog 900

C语言练习题:搬砖问题。36块砖,36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解

搬砖问题。36块砖,36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解 。 ***输入提示信息***:无 ***输入数据格式***: 无 ***输出数据格式***: "men=%d,women=%d,children=%d\n" 注:不允许使用goto语句 代码如下: #include<stdio.h> int main() { int x, y, z; for (x = 0; x ...

WZY22502701的博客 1万+

JavaScript 书签脚本实战:腾讯/优酷/爱奇艺等5大视频站m3u8链接一键提取

本文详细介绍了如何使用JavaScript书签脚本一键提取腾讯视频、优酷、爱奇艺等五大视频平台的m3u8流媒体链接。通过分析播放器内部对象结构,开发者可以高效获取视频源文件,避免录屏画质损失。文章包含各平台适配方案、实战增强功能开发及企业级解决方案设计,帮助用户快速掌握这一实用技术。

weixin_27945229的博客 609

百度地图街景图像批量获取

由于个人研究需要在最近试了一下使用API获取百度地图街景图片,在此介绍一下基于我个人需求的百度街景批量获取方法,本文以Python编码作为主要方法,如果对零编码工具有需要的可以关注一下UA城市分析小组刚刚发布的街景图片获取工具。 街景图像用作区域细粒度空间指标测度需要解决几个问题。 1. 首先就是调用额度的限制,现在百度对于个人认证开发者每天可用的街景图像调用额度为100张,在不考虑购买额度上限(1万张600元,其实有经费的前提下可以直接考虑钞能力)的情况下动辄几千上万张的爬取数量会大大增加需要爬取的时间周

boycetoon29的博客 1万+

c语言程序设计36人搬砖问题,C语言程序设计践实验题目.doc

C语言程序设计践实验题目实验题目:循环结构程序设计实验目的:1.熟悉VC++6.0的运行环境,掌握C程序的执行方法;2.掌握三种基本数据类型、部分运算符号和常用函数;3.掌握三种循环控制语句及break和continue语句的使用方法;4.掌握循环结构的嵌套及正确控制计数型循环结构次数的方法。实验内容:程序1:搬砖问题:36块砖,36人搬,男搬4,女搬3,两个小孩抬1砖,要求一次搬完,问男、女和小...

weixin_34351588的博客 3626

VBA中如何使用Edge内核Browser?

在微软宣布停止对IE的支持后,许多使用VBA中Web Browser的用户遇到了困境,因为Web Browser使用的IE内核。然而微软并没有给出支持Edge的新版Web Browser,网上许多第三方的库也不够完善。经过调研,libEdge可以较好的和VBA集成,实现在Excel中打开Browser,甚至能够通过执行js代码,获取web页面的信息。项目需要WebView2Loader.dll和LibEdge.dll两个库,区分x86和x64版本。

金木AI 2396

暴力/蛮力法经典例题--图的深度优先--C语言

非常常见的图的深度优先,我随便画了个图。 解法1--邻接矩阵--无向图: 图对应的邻接矩阵为 代码: 结构体定义: 算法主题: 解法1--邻接表--有向图: 代码:结构体定义: 算法:...

MaxDeCookies的博客 427

利用大规模生物活性挖掘,计算识别针对癌基因驱动蛋白 EGFR、BRAF 与 CDK4 的高亲和力抑制剂

背景:精准癌症治疗需要小分子抑制剂与致瘤蛋白靶点之间的精确匹配。方法:我们使用 Python 及 ChEMBL 数据库 API 开发了一套计算流程,系统性地筛选针对 EGFR、BRAF 与 CDK4 的高亲和力配体。对 IC50 < 1000 nM 的生物活性进行过滤,并检索候选化合物的分子结构(SMILES)以供后续优化。结果:本研究共识别出 [插入总数] 种独特化合物。其中,对 BRAF 激酶而言,我们挑选了一批 IC50 低至 6.0 nM 的高效实验性化合物。

u012133341的博客 96

基于STM32L4XX、HAL库的MAX13487EESA RS485总线收发器驱动程序设计

MAX13487EESA是一款3.3V供电的RS-485/RS-422收发器,由Maxim Integrated生产。PA4 (控制引脚) ---> /RE, DE (连接在一起)具有±15kV ESD保护的驱动器输出和接收器输入。半双工RS-485/RS-422通信。工业温度范围:-40°C至+85°C。工作电压范围:3.0V至3.6V。数据速率高达250kbps。

zhusl6688的博客 686

暴力/蛮力法经典例题--全排列问题--C语言

问题描述: 给定正整数n(>=2),求从1~n的全排列。

MaxDeCookies的博客 1346

VTK API 详解(134):vtkOBJWriter - 写入 OBJ 模型

是 VTK 中用于将数据写入 Wavefront OBJ 文件格式的类。OBJ 格式是广泛支持的 3D 网格模型格式,支持顶点、面和基本几何信息的保存,便于模型在多种三维软件间交换。

yumeiguo的博客 140

蛮力算法解决问题(c语言)

蛮力算法解决问题(c语言)

呼啦啦啦啦啦的博客 1180

Unity 热更新技术 |(六)xLua框架学习最新系列完整教程

开始学习热更新方面系列知识,就从这一篇开始吧! 本系列教程 会从热更新基本概念出发,详细介绍热更新相关的全套知识点。 如热更新技术基本原理、热更新主流方案、AssetBundle系列教程、Lua语言编程、Lua与Unity交互教程、Xlua框架使用、热更新实战教程等方面。 热更新作为一个开发者必备技能,如果想学习的话,可以从现在开始了哦~ 接下来先从XLua学习使用 开始学习吧!

努力前行,总会成为自己心中的那道光 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

一文搞定 KMP 算法

① 在 KMP 思想中,主串指针 i 不回溯,它将一直往右走。② next 数组第一个必填 0,next 数组的第二个 必填 1.③ nextval 数组的第一个必填 0.

lfm1010123的博客 2451

ssm框架搭建

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

Problem T 分数拆分问题(第四讲)

题目描述 输入正整数k,遇到文件末尾结束。找到所有的正整数x和y(x大于等于y),使得1/k=1/x+1/y。 输入 一行输入一个正整数k。 输出 先在第一行输出解的个数,再每行输出一个表达式。 样例输入 2 样例输出 2 1/2 = 1/6 + 1/3 1/2 = 1/4 + 1/4   #include &lt;stdio.h&gt; main() { int a,b,x,y...

C++ 1765

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蛮力枚举算法C语言,算法01-蛮力法

算法01-蛮力法一、蛮力法介绍蛮力法(brute force method,也称为穷举法或枚举法)是一种简单直接地解决问题的方法,常常直接基于问题的描述,所以,蛮力法也是最容易应用的方法。但是,用蛮力法设计的算法时间特性往往也是最低的,典型的指数时间算法一般都是通过蛮力搜索而得到的 。常见的蛮力法:冒泡排序、选择排序。二、冒泡排序1、基本思想冒泡排序(Bubble Sort),是一种计算机科学领域...

weixin_39626089的博客 961

算法(1)蛮力法

1.蛮力法 蛮力法(也称为穷举法或枚举法)是把问题的所有情况或者所有的过程交给计算机去一一尝试,从中找出问题的解。蛮力法经常用来解决一些较小规模的问题 设计思想:依次遍历集中的所有元素直到找到符合要求的元素。 优点:逻辑清晰,编写程序简洁。 缺点:效率低 蛮力法的应用: (1)顺序查找 按照顺序进行查找,一般可以对算法进行适当优化,如设置哨兵等,能够改进时间性能,但只能减少系数,而数量级不会改变。 (2)0/1背包问题 用蛮力法解决0/1背包问题,需要考虑n个给定物品的子集,找出所有重量不超过背包容量的子集

weixin_42776344的博客 2450

用动态规划法求解TSP问题

一、求解TSP问题 1、问题描述 TSP问题(担货郎问题,旅行商问题)是指旅行家要旅行n个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走的路程最短 各个城市间的距离可以用代价矩阵来表示。 2、【应用】 例如:校车怎样以最短的路线行走而接送到所有学生?报纸和牛奶的配送路线怎样最优?循环旅游怎样选取才能实现开支最少?公司视察子公司怎样出差更高效? 3、【蛮力法求解】 用蛮力法解决T...

wmy01234的博客 1万+

蛮力法查找有序数列c语言,算法——蛮力法之选择排序和冒泡排序c++实现

这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码。选择排序法比较的范围是整个列表,每次扫描结束找出最小的一个元素一次放在前面的位置;而冒泡排序法每次是将相邻两个元素进行比较,将较大的元素放在后面,这样一次扫描结束后就将当前最大的那个元素放在了列表的后面。两个排序方法的算法如下:选择排序法Select...

weixin_36027600的博客 1484

广度优先搜索(BFS)及其matlab代码

广度优先搜索的学习

weixin_42105848的博客 5149

有意思的暴力解法专题(持续更新)

循环解题专辑

莞工杰仔的博客 420

暴力/蛮力法经典例题--全部幂集问题--C语言

问题描述: 给定正整数n大于等于1,求1~n构成的所有集合,包括空集。

MaxDeCookies的博客 806

蛮力法求最近对问题c语言

#include&lt;stdio.h&gt; #define N 1000 int main() { int n,i,j,k1,k2,dis,min;//dis用来存放距离,k1,k2存放最近对的下标     int x[N],y[N];//数组x用来存放横坐标,数组y用来存放纵坐标。 printf("请输入有多少个点:"); scanf("%d",&amp;n); for(i=...

wqw_pakchoi的博客 2627
上一篇: 暴力/蛮力法经典例题--图的深度优先--C语言
下一篇: 暴力/蛮力法经典例题--求解迷宫问题--C语言
Max饼干碎
博客等级 码龄5年 28粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值