草庐IT

图论-寒假

文章目录A-AmusementArcade题意:题解:代码:B-BrexitingandBrentering题意:题解:代码:I-Monty'sHall题意:题解:代码:A-AmusementArcade题意:有n个座位,人依次选择座位入座,他们在选择座位时会选择尽可能距离人远的位置,不能出现相邻座位同时坐人的,问是否能正常入座,若可以则输出第一个人选择的位置。题解:只有当第一人左右的位置数都是2的次方时,才能正常入座。代码:#include#include#include#defineintlonglongusingnamespacestd;intcheck(intx){ return(x>

图论练习4

内容:染色划分,带权并查集,扩展并查集Arpa’sovernightpartyandMehrdad’ssilententering题目链接题目大意个点围成一圈,分为对,对内两点不同染色同时,相邻3个点之间必须有两个点不同染色问构造出一种染色方案解题思路  将每对进行的连边看作一类边将为满足相邻3个点必须有两个点不同染色的边,看作二类边满足构造方案,即将个点形成一个二分图,无奇环对于只有一类边,形不成环,端点不同对于二类边与一类边组合才能形成环将二类边定义为成环的情况只能,如下图由于一类边不可能相连,中间必然是二类边,一类边交换,所以环上的点数为二类边的总点数,一定为偶数,只能形成偶环,构造成立

C++算法之双指针、BFS和图论

一、双指针1.AcWing1238.日志统计分析思路前一区间和后一区间有大部分是存在重复的我们要做的就是利用这部分来缩短我们查询的时间并且在使用双指针时要注意对所有的博客记录按时间从小到大先排好顺序因为在有序的区间内才能使用双指针记录两个区间相差相当于把一个有序的时间序列进行每次递增1的划分代码实现#include#include#definexfirst#defineysecondusingnamespacestd;constintN=100010;typedefpairPII;PIIlogs[N];boolst[N];intcnt[N];intmain(){intn,d,k;cin>>n>

【动态规划】【图论】【C++算法】1928规定时间内到达终点的最小花费

作者推荐【动态规划】【状态压缩】【2次选择】【广度搜索】1494.并行课程II本文涉及知识点动态规划汇总LeetCode1928.规定时间内到达终点的最小花费一个国家有n个城市,城市编号为0到n-1,题目保证所有城市都由双向道路连接在一起。道路由二维整数数组edges表示,其中edges[i]=[xi,yi,timei]表示城市xi和yi之间有一条双向道路,耗费时间为timei分钟。两个城市之间可能会有多条耗费时间不同的道路,但是不会有道路两头连接着同一座城市。每次经过一个城市时,你需要付通行费。通行费用一个长度为n且下标从0开始的整数数组passingFees表示,其中passingFees

矩阵范数与图论: 在图论中的应用和理论基础

1.背景介绍矩阵范数和图论是计算机科学和数学领域中的两个重要概念。矩阵范数是一种用于衡量矩阵“大小”的度量,而图论则是用于描述和分析网络结构的工具。在本文中,我们将探讨这两个领域之间的联系,并讨论它们在实际应用中的重要性。矩阵范数的概念可以追溯到19世纪的数学家,如赫尔曼和埃尔莱茨。随着计算机科学的发展,矩阵范数在线性代数、机器学习、信号处理等领域得到了广泛应用。图论则起源于19世纪的数学家埃尔拉迪格,后来于20世纪进行了深入的研究。图论在计算机科学、数学、物理等领域具有广泛的应用,如网络流、图匹配、图论算法等。在本文中,我们将从以下几个方面进行讨论:核心概念与联系核心算法原理和具体操作步骤以

【离散数学】C++语言实现利用真值表法求主析取范式和主合取范式

Java版本的如下链接所示:Java语言实现利用真值表法求主析取范式和主合取范式_zhtstar的博客-CSDN博客https://blog.csdn.net/weixin_56319483/article/details/128489247?spm=1001.2014.3001.5501Python版本的如下链接所示:【离散数学】Python语言实现利用真值表法求主析取范式和主合取范式_zhtstar的博客-CSDN博客https://blog.csdn.net/weixin_56319483/article/details/128488744?spm=1001.2014.3001.5501

搜索与图论第三期 树与图的深度优先遍历

前言该部分内容实际上是DFS的一个扩展,只要是会了DFS之后,这部分其实也差不多,直接上例题啦就。                                                                 1.例题:2.AC代码:#include#include#includeusingnamespacestd;constintN=100010,M=N*2;intn;inth[N],e[M],ne[M],idx;//根链表定义变量一样,h[N]是head,有n个链表boolst[N];intans=N;//全局答案//链表插入操作voidadd(inta,intb){ e

数据结构C++——拓扑排序

数据结构C++——拓扑排序文章目录数据结构C++——拓扑排序一、前言二、拓扑排序的概念及作用三、拓扑排序的实现①拓扑排序的实现原理②拓扑排序中FindInDegree()函数的实现③拓扑排序的代码实现④完整测试代码四、总结一、前言拓扑排序需要用到栈和邻接表的相关知识,由于笔者在之前的文章中已经介绍过栈和邻接表,此处不再过多赘述,对此部分还不太了解的读者欢迎移步此文章,共同学习!:数据结构C++——栈数据结构C++——图的邻接矩阵和邻接表.二、拓扑排序的概念及作用(1)有向无环图:一个无环的有向图称作有向无环图,简称DAG图(2)AOV-网:用顶点表示活动,用弧表示活动间的优先关系的有向图称为顶

CCF- CSP 202303-2垦田计划 【多种方法】满分题解

CCF-CSP202303-2垦田计划【多种方法】满分题解题目链接:CCF-CSP202303-2垦田计划70分思路:从基础耗时最长的区域进行筛选,每次基础耗时减少一天该方法以m作为参考对象,对m进行减的操作(m的数据范围达到1e9,导致超时)采用优先队列作为存储结构,同时存储t和c代码如下:#include#include#includeusingnamespacestd;constintN=1e5+10;intn,m,k;typedefpairint,int>PII;//采用pair同时存储t和cpriority_queuePII,vectorPII>>heap;//采用优先队列intma

【图论】【状态压缩】【树】【深度优先搜索】1617. 统计子树中城市之间最大距离

作者推荐【动态规划】【字符串】【行程码】1531.压缩字符串本文涉及的知识点图论深度优先搜索状态压缩树LeetCode1617.统计子树中城市之间最大距离给你n个城市,编号为从1到n。同时给你一个大小为n-1的数组edges,其中edges[i]=[ui,vi]表示城市ui和vi之间有一条双向边。题目保证任意城市之间只有唯一的一条路径。换句话说,所有城市形成了一棵树。一棵子树是城市的一个子集,且子集中任意城市之间可以通过子集中的其他城市和边到达。两个子树被认为不一样的条件是至少有一个城市在其中一棵子树中存在,但在另一棵子树中不存在。对于d从1到n-1,请你找到城市间最大距离恰好为d的所有子树数