2023/1/13总结

news2024/12/27 15:54:36

今天学习了链式向前星和唯一分解定理(数论)。 

链式向前星

链式向前星是一种存储图的方法,在此之前我们学到过存储图的方式:邻接表以及邻接矩阵,邻接矩阵浪费了很大的空间,而邻接表 写起来的代码有一点点的麻烦,这里的链式向前星,我认为是用数组链表静态模拟了一个链表。

结构体的大小是根据边的大小来设置的

它的结构体如下:

其中 edges 里面的to 代表的是当前边到达的顶点,就是我们输入u,v,w里面的v值;

而w就是u,w,v里面的w;next是当前已经输入的边当中,和u同起点的上一条输入的边。

我们怎么知道和u同起点的上一条已经输入过的边?

我们需要借助一个数组:

该数组记录的是每一个顶点,最后访问到的边,我们通常不以0作顶点,所以该数组里面初始化会是0,如果你是从0作顶点,那么就需要初始化为-1.

然后就是输入咯

输入终点和权值只需要记下来,edges[i].next=head[u],就是代表与u同顶点的前一条边,然后需要把刷新与u同起点的边的值,因为我们以及输入了一个以u为起点的一条边,当前输入的是第几条边,那么我们就可以直接赋值。

最后直接输出即可

C代码如下:

 

#include<stdio.h>
#define N 100
#define M 100
int n,m;
struct node
{
	int to;
	int w;
	int next;
}edges[M];

int head[N];

int main()
{
	int i,j,u,v,w;
	puts("请输入你的顶点数:");
	scanf("%d",&n);
	puts("请输入你的边的总数:");
	scanf("%d",&m);
	puts("请输入起点、终点以及权值:");
	
	for(i=1;i<=m;i++)
	{
		scanf("%d%d%d",&u,&v,&w);
		edges[i].to=v;
		edges[i].w=w;
		edges[i].next=head[u];
		head[u]=i;
	}
	
/*	for(i=1;i<=m;i++)
	{
		printf("%d %d %d\n",edges[i].to,edges[i].w,edges[i].next);
	}
	for(i=1;i<=n;i++)
	{
		printf("%d ",head[i]);
	}*/
	
	for(i=1;i<=n;i++)
	{
		printf("%d能到达的边:",i);
		for(j=head[i];j!=0;j=edges[j].next)
		{
			printf("%d ",edges[j].to);
		}
		puts("");
	}
}

C++代码如下:

 

#include<iostream>
#include<bits/stdc++.h>

using namespace std;

const int N=100;
const int M=100;
int n,m;
struct node
{
	int to;
	int w;
	int next;
}edges[M];
int head[N];
int main()
{
	int i,j,u,v,w;
	cout << "请输入你的顶点数:" << endl;
	cin >> n ;
	cout << "请输入你的边的总数:" << endl;
	cin >> m ;
	cout << "请输入起点、终点以及权值:" << endl;
	for(i=1;i<=m;i++)
	{
		cin >> u >> v >> w ;
		edges[i].to=v;
		edges[i].w=w;
		edges[i].next=head[u];
		head[u]=i;
	}
	
	for(i=1;i<=n;i++)
	{
		cout << i << "能到达的边:" << endl;
		for(j=head[i];j!=0;j=edges[j].next)
		{
			cout << edges[j].to << " " ;
		}
		cout << endl ;
	}
	return 0;
}

 

唯一分解定理

唯一分解定理又称算术基本定理,指:一个大于一的正整数N都可以唯一分解成有限个质数的乘积。N=p1^a1*p2^a2*p3^a3*...*pn^an,这里p1<p2<p3<...<pn均为质数,ai均为正整数.

这样的分解称为N的标准分解式.(听起来有点类似于哥德巴赫猜想)

该题主要用在求N的因子个数,找最大公约数以及最小公倍数。

求N的因子个数:

我们来假设12,12的素数因子有2,3

12=(2^2)*(3^1)

它的因子个数就等于各位素数的幂次+1相乘起来

即:(2+1)*(1+1)=6

12的因子有 1,2,3,4,6,12一共6个。

求最大公约数以及最小公倍数:

这里是9 和12(取素数的时候我们,需要将每个存在于一方的素数,化成到俩方都有)

比如下面这个,本来9分解出来是没有素数2的,但是12,有,我们只需要写上2^0即可,不影响结果

9=(2^0)*(3^2)

12=(2^2)*(3*1)

最小公约数:

gcd(9,12)=2^(min(0,2))*3^(min(1,2))=3

lcm(9,12)= 2^(max(0,2))*3^(max(1,2))=36

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/160884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序wxml的数据和事件的绑定,以及条件和列表的渲染

文章目录1.数据绑定的基本原则在data中定义页面的数据2.事件绑定bingtap的语法格式:在事件处理函数中为data中的数据赋值事件传参bindinput的语法格式实现文本框和data之间的数据同步1.定义数据2.渲染结构3.美化样式4.绑定input事件处理函数3.条件渲染hiddenwx:if与hidden的对比…

数据库 表设计 MySQL

表设计 约束 为了保证入库数据的合理性&#xff0c;添加的各种规则。 约束的分类 准备测试用的表格&#xff1a; CREATE TABLE emp ( id INT, -- 员工id&#xff0c;主键且自增长 ename VARCHAR(50), -- 员工姓名&#xff0c;非空且唯一 joindate DATE, -- 入职日期&…

【uniapp】渲染列表数据删除项导致每项数据重置的问题解决方案

开发uniapp项目&#xff0c;使用的是JavaScript Vue写法&#xff0c;操作wList数组列表更新的时候&#xff0c;如果每一项都带input 或 radio组件&#xff0c;要操作移除的话&#xff0c;那么组件的输入数据会被清除重置&#xff0c;若不希望这样&#xff0c;那应该怎么做才好呢…

设计模式相关内容介绍—软件设计原则(六个)

在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可扩展性和灵活性&#xff0c;程员要尽量根据6条原则来开发程序&#xff0c;从而提高软件开发效率、节约软件开发成本和维护成本。 目录 1.开闭原则 2.里氏代替原则 3.依赖倒转原则 4.接…

dvwa中的文件包含攻击

环境&#xff1a;dvwa: 192.168.11.135 dvwa版本&#xff1a; Version 1.9 (Release date: 2015-09-19)kail机器&#xff1a;192.168.11.156一、什么是文件包含漏洞?为简化代码&#xff0c;会把重复的code内容单独写到一个页面文件&#xff0c;然后再需要调用重复内容的页面中…

C语言:初识C语言

目录前言1. 什么是c语言呢2. 第一个c语言程序2. 数据类型3. 变量和常量3.1 变量3.1.1 变量的定义3.1.2 变量的分类3.1.3 变量的使用3.1.4 变量的作用域和生命周期3.2 常量4. 字符串、转义字符、注释4.1 字符串4.2 转义字符4.3 注释5. 选择语句6. 循环语句7. 函数8. 数组9. 操作…

学习笔记——keep-alive缓存组件,再次返回组件data数据重置

前言&#xff1a;使用keep-alive缓存组件&#xff0c;当再次返回该组件后&#xff0c;希望其组件中的数据或状态&#xff0c;保持上次离开该组件时的情况。 一、当前组件树 希望缓存HomeMain组件的状态。 二、错误处理 我在HomeMain的祖先组件HomeLayout中&#xff0c;写了如下…

sqlplus 连接数据库

终端直连 Oracle 数据库 ORA-12162 错误 出于各种网络原因&#xff0c;无法直连数据库&#xff0c;但又必须查询数据库数据 我们只能选择直连数据库的服务器 然后通过 sqlplus 连接 Oracle 从配置文件里获取这样一段信息 urljdbc:oracle:thin:192.168.1.3:1521:testdb use…

【SpringCloud08】SpringCloud Consul服务注册与发现

1.Consul简介 1.1是什么 官网 Consul 是一套开源的分布式服务发现和配置管理系统&#xff0c;由 HashiCorp 公司用Go 语言开发 提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用&#xff0c;也可以一起使用以构建全方位…

基于MPLS-V**多分部互访的ensp企业网络规划与设计_ensp综合实验

作者&#xff1a;BSXY_19计科_陈永跃BSXY_信息学院注&#xff1a;未经允许禁止转发任何内容基于MPLS-V**多分部互访的ensp企业网络规划与设计_ensp综合实验前言及技术/资源下载说明&#xff08; **未经允许禁止转发任何内容** &#xff09;插曲&#xff1a;基于eNSP中大型校园/…

卡特加特数字中控主机,数字家庭控制中心!没它智能家居就是智障!

数字中控主机是数字家庭的核心&#xff0c;承担着“协调各方、总揽全局”的作用&#xff0c;是打造未来数字家庭空间必不可少的设备。区别于传统家居智能&#xff0c;它真正意义上告别了过去以设备为中心的架构&#xff0c;而是以人的个性化需求为中心&#xff0c;以数据作为资…

2020统考真题-距离最小三元组

2020年统考真题 定义三元组$ (a,b,c)$ &#xff08; a,b,c 均为正数&#xff09;的距离 D∣a−b∣∣b−c∣∣c−a∣D|a−b||b−c||c−a|D∣a−b∣∣b−c∣∣c−a∣ 。给定 3个非空整数集合 S1 、 S2 和 S3 &#xff0c;按升序分别存储在 3 个数组中。请设计一个尽可能高效的算…

蓝队攻击的四个阶段(三)

目录 一&#xff0c; 专业技能储备 1.工具开发技能 2.漏洞挖掘技能 3.代码调试技能 4.侦破拓展技能 二&#xff0c;目标网情搜集 1 何为网情搜集 2. 网情搜集的主要工作 三&#xff0c; 网情搜集的途径 1.专业网站 2.专业开发资源网站 3.目标官网 一&#xff0c; 专…

算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和

算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和 平衡二叉树 110. 平衡二叉树 - 力扣&#xff08;LeetCode&#xff09; 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每…

osg fbo(五) 通过shader计算纹理坐标并采样

在前边几节&#xff0c;纹理坐标数组是在生成geometry前指定的。 这里在shader里计算&#xff0c; 一&#xff0c;注释掉geometry中的纹理坐标 //osg::ref_ptr<osg::Vec2Array> texCoord new osg::Vec2Array; //texCoord->push_back(osg::Vec2(0.0, 0.0)); //texCoo…

1.13UART串口实验

UART总线&#xff1a; 异步全双工串行总线。用于芯片与外设之间的通信 UART通信协议&#xff1a; 空闲状态处于高电平 起始位&#xff1a;串口通信的起始标志 数据位&#xff1a;传输数据时先从低位开始传输&#xff0c;再传输高位 奇偶校验位&#xff1a; 奇校验&#x…

MacOS 系统中如何使用EF Core进行数据迁移?

原有 笔者最近在使用MacOS系统做asp.net core mvc项目开发。可是一直习惯了使用宇宙最强大的vs2019工具。突然换到苹果系统就感觉什么都是问题了。现在我将遇到该问题的解决方案做下记录&#xff0c;方便自己也是方便别的同学快速的解决问题。 发现有坑 其实最开始我也是翻阅…

RocketMQ 存储优化技术 解析——图解、源码级解析

&#x1f34a; Java学习&#xff1a;Java从入门到精通总结 &#x1f34a; 深入浅出RocketMQ设计思想&#xff1a;深入浅出RocketMQ设计思想 &#x1f34a; 绝对不一样的职场干货&#xff1a;大厂最佳实践经验指南 &#x1f4c6; 最近更新&#xff1a;2023年1月13日 &#x…

Django 后端没有接收到前端anxios的 post 内容

前端使用 vue 无论怎样 post 后端都说没有接收到值&#xff0c;&#xff08;后端接口正确&#xff09; 寻找原因&#xff1a; 1、前端查看自己的请求类型 Content-Type:application/json 我们的请求是这样的&#xff1a; axios({method:post,url:/video/upload,data:{"…

RedHat6配置本地yum源(最新超详细过程)

一、环境准备 挂载iso的镜像文件在CD/DVD驱动器上&#xff0c;需要确保&#xff0c;已连接已打开&#xff0c;且CD/DVD上的介质符合当前操作系统的版本。 挂载本地光盘到系统 在“编辑设置”——>“硬件”——>“CD/DVD驱动器”里指定操作系统的ISO镜像文件 光驱挂载…