NEFU离散数学实验特别篇1-树和图

树相关概念

离散数学中,树是一种重要的数据结构,它是一种无向连通图,并且不存在环。下面是树的相关概念和公式:

1. 顶点数为n的树,边数为n-1。

2. 度数为k的树中有k个分支。

3. 一棵树中最多只有两个度数大于1的顶点,这些顶点称为树的端点或叶子,其余顶点称为分支或内部点。

4. 一棵有n个顶点的满二叉树,深度为h,共有2^(h+1)-1个结点,其中叶子结点数为2^h。

5. 一棵有n个顶点的完全二叉树,深度为h,共有2^h个结点,其中叶子结点数为2^(h-1)或2^h。

6. 一棵二叉树的深度为h,最多有2^h-1个结点,最少有h个结点。

7. 一棵n个结点的树,最多h=n-1,最小为1,树的高度即为树的深度。

8. 一个树森林(由若干棵树组成)中,所有树的节点数n等于边数m+森林中树的棵树。

9. 一棵树的生成森林中,边数为n-1。

10. 一颗有n个顶点的有根树,每个顶点都有度数,度数为0的顶点称为叶子顶点,度数不为0的顶点称为内部顶点,如果叶子顶点的数量为m,那么内部顶点的数量为n-m。

1. (程序题)2元完全正则树

思路
P178概念题目啦
知道啥是2元完全正则树即可
概念拆分:
r元树:T的每个分支点至多有r个儿子
r元正则树:T的每个分支点恰好有r个儿子
r元完全正则树:T是r元正则树,且所有树叶的层数均为树高
树的层数:树根到任意一点的通路长度
树的高:最大层数

可以发现,对于树高为h的2元完全正则树

顶点数=2^{h+1}-1

边数=0+2+4+8+16....
树叶=2^h

#include<stdio.h>
#include<stdlib.h>
#include<math.h>int main(){int h;scanf("%d",&h);int edge=0;for(int i=1;i<=h;i++)edge+=1<<(i);printf("%d %d %d",(1<<(h+1))-1,edge,1<<h);return 0;
}

2. (程序题)树的边数

思路
2元正则树:T的每个分支点恰有2个儿子
其实想想最特殊的情况,2元完全正则树嘛(可以先看后面的一道题目)
可以发现m = 2 ( t − 1 ) m=2(t-1)m=2(t−1)

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){int t;while(~scanf("%d",&t)){printf("%d\n",2*(t-1));}return 0;
}

 图相关概念

离散数学是一门研究离散化的数学学科,图论是其中的一个分支,涉及到一些基本概念和公式,包括:

1. 图的基本概念:
- 顶点(vertex):图中的节点。
- 边(edge):连接顶点的线段。
- 无向图(undirected graph):图中的边没有方向。
- 有向图(directed graph):图中的边有方向。
- 加权图(weighted graph):图中的边带有权值。

2. 图的表示方法:
- 邻接矩阵:用一个矩阵来表示图中顶点之间的关系。
- 邻接表:用链表来存储图中顶点之间的关系。
- 关联矩阵:用一个矩阵来表示图中边与顶点之间的关系。

1. (程序题)度数序列

思路
可以看一下书本P135的例6.3
根据握手定理:所有顶点度数之和为边数两倍。
那么有推论,奇度顶点的个数一定是偶数的。 

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){int n;while(~scanf("%d",&n)){int cnt=0;for(int i=1,x;i<=n;i++){scanf("%d",&x);if(x&1)cnt++;// 如果x是奇数,计数器cnt加1 }if(cnt&1)puts("no"); // 如果计数器cnt是奇数,输出"no"else puts("yes");}return 0;
}

2. (程序题)平面图 

思路
书本P159定理6.16
设G为任意的连通的平面图,则n-m+r=2。其中n为顶点数,m为边数,r为面数满足

n-m+r=2 

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){int n,r;while(~scanf("%d%d",&n,&r)){printf("%d\n",n+r-2);}return 0;
}

 3. (程序题)计算连通分支数

思路
书P159推论
G是具有k(k>=2)个连通分支的平面图,则n-m +r=k +1

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){int n,m,r;scanf("%d%d%d",&n,&m,&r);printf("%d",n-m+r-1);return 0;
}

 4. (程序题) 求悬挂顶点

思路
根据握手定理:所有顶点度数之和为边数两倍
悬挂顶点度数为1。
设有x个悬挂顶点

2m=(2+3+4+5+6)t+x
x=2m-20t 

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){int m,t;scanf("%d%d",&m,&t);printf("%d",2*m-20*t);
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021-arxiv-LoRA Low-Rank Adaptation of Large Language Models

2021-arxiv-LoRA Low-Rank Adaptation of Large Language Models Paper: https://arxiv.org/abs/2106.09685 Code: https://github.com/microsoft/LoRA 大型语言模型的LoRA低秩自适应 自然语言处理的一个重要范式包括对通用领域数据的大规模预训练和对特定任务或领域的适应。…

NB-IOT的粮库挡粮门异动监测装置

一种基于NBIOT的粮库挡粮门异动监测装置,包括若干个NBIOT开门监测装置,物联网后台管理系统,NBIOT低功耗广域网络和用户访问终端;各个NBIOT开门监测装置通过NBIOT低功耗广域网络与物联网后台管理系统连接,物联网后台管理系统与用户访问终端连接.NBIOT开门监测装置能够对粮库挡粮…

删除链表的倒数第n个节点(C++解法)

题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[]示例 3&#…

[0xGame 2023 公开赛道] week4 crypto/pwn/rev

最后一周结束了&#xff0c;难度也很大&#xff0c;已经超出我这认为的新生程度了。 crypto Orac1e 先看题&#xff0c;题目先是给了加密过的flag然后提供不限次数的解密&#xff0c;不过仅提供解密后unpad的结果。 from Crypto.Util.number import * from Crypto.Cipher i…

SpringBoot源码透彻解析—bean生命周期

先跟一段debug再看总结&#xff1a; 1 创建实例 InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation&#xff08;自定义一个对象或者代理对象&#xff09;createBeanInstance&#xff08;创建实例&#xff09;MergedBeanDefinitionPostProcessor.postProcess…

【c++|opencv】二、灰度变换和空间滤波---5.中值滤波

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 1. 中值滤波 #include<iostream> #include<opencv2/opencv.hpp> #include"Salt.h"using namespace cv; using namespace std;voi…

【原创】java+swing+mysql无偿献血管理系统设计与实现

摘要&#xff1a; 无偿献血管理系统是为了实现无偿献血规范化、有序化、高效化的管理而设计的。本文主要介绍使用java语言开发一个基于C/S架构的无偿献血管理系统&#xff0c;提高无偿献血管理的工作效率。 功能分析&#xff1a; 系统主要提供给管理员、无偿献血人员&#x…

1.6 基本安全设计准则

思维导图&#xff1a; 1.6 基本安全设计准则笔记 目标&#xff1a;理解和遵循一套广泛认可的安全设计准则&#xff0c;以指导保护机制的开发。 主要准则&#xff1a; 机制的经济性&#xff1a;安全机制应设计得简单、短小&#xff0c;便于测试和验证&#xff0c;减少漏洞和降…

2023我和云栖有个约会

时间&#xff1a;2023.11.1 地点&#xff1a;云栖小镇 事件&#xff1a;约会 昨天刚在网上看到了有阿姨在云栖大会给自己女儿相亲的照片&#xff0c;今天直接就赶了过去。约会了一整天&#xff0c;虽然很累&#xff0c;但真的很值得。由于是第一次和云栖约会&#xff0c;那就…

《 博弈论教程(罗云峰版) 》——习题一答案

前言 博弈论这门课程&#xff0c;我们主要参考的教材是《博弈论教程&#xff08;罗云峰版&#xff09;》&#xff0c;但是罗老师的课后习题并没有给出完整的答案&#xff0c;秉着学习的态度&#xff0c;本人结合教材和 PPT 在这里给出课后习题的答案。 由于我们只学了完全信息静…

ps提示vcruntime140.dll无法继续执行此代码的多种解决方法分享

我在安装Photoshop软件时遇到了一个问题&#xff0c;即在运行过程中弹出了一个错误提示框&#xff0c;显示“由于找不到vcruntime140.dll&#xff0c;无法继续执行此代码”&#xff0c;我通过查找资料了解到vcruntime140.dll是一个动态链接库文件&#xff0c;它是Visual C Redi…

Physics2DPlugin3加载后会跳转gsap官网解决

因工作需要使用Physics2DPlugin3库&#xff0c;目标效果 加载他里面的在线js&#xff0c;使用效果正常&#xff0c;但是几秒会跳转官网&#xff0c;我们app内部、浏览器都会这样。 于是研究js代码&#xff0c;发现里面有setTimeout跳转。 删掉就好了 分享我改好的文件&#x…