自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 大学康复训练

大学康复训练进入清华第一次打codeforces,感觉自己又菜了好多好多呀,这几天回复手感,上传一些自己觉得做的好的题目。

2023-09-18 16:23:17 418 1

原创 欧拉道路全集

前言怎么说,真的就是????王定义欧拉道路什么叫做欧拉道路,其实就是一笔画完整个图的所有边,并且不可以重复走同一条边。欧拉回路就是起点和终点相同的欧拉道路,注意欧拉回路也属于欧拉道路欧拉图有欧拉回路的图我们叫做欧拉图。半欧拉图有欧拉道路的图,我们叫做半欧拉图。判断判断欧拉道路,也就是半欧拉图对于有向图,充分必要条件是,整个图联通,并有且只有两个度为奇数的点,一个入度比出度大一,另外一个相反。这两个也就是欧拉道路的起点和终点。对于无向图,充分必要条件是 ,整个图联通,并有且只有两

2021-12-04 17:16:32 432

原创 P4071 [SDOI2016]排列计数(错排)

前言其实就是一个个错排公式和组合数的应用,感觉自己推的有的费劲错排公式首先考虑一下递推式子。首先假如说第一个放的不自己,那么第一个数就有n-1种方案。随便拿出来一种去看。假如说第二个放的是第一个的是不是就是对d[n−2]d[n-2]d[n−2],也就是对n-2个数做错排。假如不是,是不是就是对剩下的n-1个做错排 , 也就是d[n−1]d[n - 1]d[n−1]。所以说d[i]=(i−1)∗(d[n−1]+d[n−2])d[i] = (i-1) * (d[n-1] + d[n-2])d[i]

2021-11-21 18:18:29 359

原创 [ZJOI2010]排列计数

前言计数问题解决问题转化首先这题单纯的去看题目的意思其实很难的,之后我们就去转化一下问题,iii 和 i/2i / 2i/2可以让你想到啥,是不是二叉树,那么f[i]>f[i/2]f[i] > f[i/2]f[i]>f[i/2]这是啥,是不是小根堆,其实不用知道这是个小根堆也可以,只要可以看出来这是一个二叉树就好了。正解之后我们发现是不是1只可以放在root上,之后是不是左右儿子是互相不影响的,之后我们就去分开考虑。左儿子给l个,那么剩下的是不是只用放到右儿子是不是就好了。a

2021-11-18 15:41:22 280

原创 P2261 [CQOI2007]余数求和

知识整除分块加上取模转换解首先a%b = a - [a/b] (下取整) * b没问题吧之后对于∑i=1nkmodi\sum_{i=1}^{n}kmodii=1∑n​kmodi是不是就可以化成n∗k−∑i=1ni∗k/in * k - \sum_{i=1}^{n} i*k/in∗k−∑i=1n​i∗k/i 下取整之后右边的那个是不是整除分块加上等差数列,是不是就解决了coding time#include<bits/stdc++.h>using namespace std

2021-11-17 21:52:06 75

原创 整除分块推式子

前言最近在学莫比乌斯反演,所以先学一下前置的知识。证明加内容这就是整除分块了,注意那里是下取整。之后我们会了 这个够吗?不够我们还要会把它应用。杂题已知正整数n,a,b,求∑i=1nnai+b\quad \sum_{i=1}^{n}\frac{n}{ai+b}∑i=1n​ai+bn​下取整如何做嘞还是之前的证明思路两种方法都要会哦例二计算∑i=1nni2\quad \sum_{i=1}^{n} \frac{n}{i^2}∑i=1n​i2n​下取整先去自己推一下吧例题三计

2021-11-17 21:13:16 210

原创 模拟赛15补题

T1题面给你一个整数 nn,你需要找三个正整数 x,y,zx,y,z,满足 n=x+y+zn=x+y+zn=x+y+z, x∣n,y∣n,z∣nx∣n,y∣n,z∣nx∣n,y∣n,z∣n,求最大的 x* y *z解决其实想一下,再去打一下表就好了,首先我们想一下三个数相加为x,那么最大的数是不是一定比 x/3x/3x/3 大,那么我们去考虑一下当最大的数是 n/2n/2n/2 时候我们是不是之后的选择就是x/3 x/6 or x/4 x/4 之后再小的是不是就分母上去考虑肯定比现在这些差。

2021-11-17 15:32:24 248

原创 扫描线扫走你的不开心

前言一个脱了好久的算法,其实不是很难,只不过之前属实是懒死了,就没去学,上一次模拟赛吃亏了,现在来补一下解决啥其实就是二位平面上的面积问题等等,其实好像二位数点也可以做2正文首先我们考虑一下如何去暴力的做这道题,是不是大概就是递归之类的其实我们可以发现,这个题目难在我们有两个维度,那么我们就考虑把一维放入线段树里面去,因为线段树维护的就是区间信息啊。考虑一下线段树维护啥,其实就是l,r这一段区间里面被矩形覆盖的线段的长度,扫到一个线,去看一看他是入边还是出边,入就这一段全是1,出就去除。之后我

2021-11-15 21:37:07 244

原创 P7447 [Ynoi2007] rgxsxrs毒瘤数据结构

前言首A黑题,虽然离不开题解,但是还是很激动我的想法首先我是想取维护区间的max,之后假如区间max小于x,那么我们就不用去递归了,之后如果大于就去分别处理,但是可以发现这个做法虽然也有均摊,但是当x很小时候无异于暴力,所以还是要优化正解首先是十分有用(毒瘤 )的不均匀分块,我们取K(一个基数),之后按照【1,k)【k 2 , k 3) …这样去分块,之后就可以最多分出来 log⁡kai\log_k ailogk​ai个块。我在每一个块上开一个线段树,之后线段数上维护区间最大值,区间和,区间

2021-11-13 21:38:31 329

原创 状态压缩DP

简介状态压缩dp可以说是耳熟能详了吧,其实就是但我们类似于用搜索的思想找情况,之后对于每一个情况就可以当作一个状态去转移,在学习这个之前让我们先去学习一下位运算位运算“|” or 或运算 , 两个有一个是1就是1“&” and 与运算 , 两个都是1才是1“^” 异或运算 , 两个不同才是1例题P1896 [SCOI2005]互不侵犯oi wiki上的例题,也是我第一个状压的题目首先我们发现这个题目是一个类似于在棋盘上的计数,之后我们先不想状态压缩,直接dp的话如何dp[i

2021-11-06 20:36:21 85

原创 fhq——treap

前言这是分裂平衡树,是范浩强神牛发明的,我觉得是一个好写,好调的平衡树,所以先%fhq 之后开始原理其实就是把普通的treap的旋转换成了分裂,于是他就可以实现所有平衡树的所有操作结构体里的东东1.val值2.key 索引3.l,r左右孩子编号4.size大小split这是很重要的操作之一,这个是按照val把这棵树分成两个,一个全都小于等于val,一个全都大于val,代码如下inline void split(int now,int val,int &x,int &y

2021-10-30 14:55:01 247

原创 数据结构刷题合集

一P4113 [HEOI2012]采花这是一个求一个区间出现次数大于等于二的数字的个数这个的思路其实十分的的人类智慧,首先我们不难想到把所有的操作离线下来,之后就可以把复杂度降低了,之后就考虑一下如何去问维护信息,首先我们可以考虑前缀和,也就是参考HH的项链那道题,我们对于每一个color记录一下上一个出现的位置last1,之后假如再次出现就给上一个位置那里加一这里不直接给第二次的位置加一是因为,考虑223这个序列,假如查询(2,3) ,就会出问题。之后我们发现还有可能出现三次,这个假如像之前处理就

2021-10-23 13:15:25 295

原创 动态规划刷题合集

P2051 [AHOI2009]中国象棋这是一个十分不错的区间计数dp首先我们会发现这个有两个维度,所以显然要降维,所以考虑一下把一行的状态进行压缩,也就是看一看可不可以把一行进行合并操作,于是我们就可以发现加入把一行看成一个,那么每一列最多只可以放两个,每一行可以增加两个,所以就可以设计一下状态dp[i][j][k]表示放到第i行,有j列有一个棋子,有k列有两个棋子的方案数,所以就可以很顺利的感觉这个转移方程是要分类讨论的一。一个子都不放所以说dp[i][j][k] = dp[i-1][j][

2021-10-22 20:52:03 135

原创 配对统计

前言这真的是一道好题,随机抽题抽到了这个它,对于树状数组和排序的理解又上一层了题解首先我们可以发现这个好的配对要求的是这两个树相差最小,之后假如我们排好序就可以发现这个配对只可以在左右两边那么分类讨论一下,无非是:左右之差相等,左边大,右边大。这样我们是不是就可以在nlogn的时间内求出所有好的配对的个数,之后所有的询问假如说我们一个一个暴力的扫过去,复杂度还是会炸,会多一个n,那么我们去转化一下一个询问区间(l,r)的配对个数 = r以前可以的 - l-1以前的可以的这是啥,是不是区间前缀

2021-10-12 20:39:16 139

原创 P3523 [POI2011]DYN-Dynamite

前言这道题是一个树上二分的题,其实很有思维量的思路首先这是一道让选择m个节点,每一个点到关键节点的距离的最小值中的最大值最小化的一道题目首先第一个最小值就是每一个选定节点到最近的关键节点的距离,其实不用太在意,之后就是最大值最小化,这显然是二分答案的一道题,所以考虑二分一个mid,看看可不可以用mid的距离去覆盖全部的关键节点,之后就是考虑这个checkcheck首先我们可以用覆盖的思想去理解这道题,就是每一个选定节点可以覆盖全部的关键节点就是一个true,那么我们就用两个数组f[x] --

2021-10-03 17:16:48 99

原创 STl

** stl容器都是左闭右开的 **set这个是一个功能受限的平衡树,里面的数都是有序的** 里面的元素的不可重复的 **首先s.insert() // 插入一个数s.erase() //删除这个数s.lower_bound(*) //找到大于等于这个数的迭代器s.lower_bound() //这就是大于等于这个数的值– s.lower_bound(*) //就是小于等于multiset这个是可以重复的set,其他也就没啥...

2021-10-03 10:16:43 72

原创 [HEOI2016/TJOI2016]排序

前言这是一道思维好题,也告诉了我二分答案写不好真的也会送进AFO思路首先这个操作是对于一个数列,我们会对于一个l,r的区间进行升序or降序的操作,问几次过后q位置上的数是几。这个其实暴力很好想,但是时间复杂度显然是不对的,之后我们就去考虑一下对于一个0,1串的操作是如何的,首先我们是将这个区间有几个1给求出来,之后我们就要对于这个区间进行0,1赋值是不是就好了,那么推广一下就是最终的结果首先二分答案,所有大于等于mid的看成是1,小于的是0,之后就是进行区间赋值的操作,最后就是看看q位置上的是1/

2021-10-02 18:43:07 77

原创 NOIP2018 赛道修建

前言简直了,又是一道看着题解做出来的题,我感觉我在考试时根本写不出来答案,哎部分分这也是我可以写出来的啦m==1就是去求树的直径,简单树退化成链这也不是很难想,其实就是二分+链上子段和就是一直找下去,如果cnt>=mid就统计一次答案,如果最后统计出来的答案比m大就l=mid,要不然就r=mid-1(这里二分答案)菊花图这其实就是正解的思路指引首先考虑二分答案(显然吧),之后呢,我们是不是就要去check,如何check,对于所有val>mid的边,显然直接统计就好了,要是

2021-09-27 20:44:39 246

原创 noip2022全程记录

2021.9.19初赛好难啊,还好我在弱省,可以过去,刚开考就犯了鼻炎,太难受了,还好之后状态不错,最后一题那个魔性科技实在只能有玄学作,太难了,结束后有机会学一学

2021-09-21 12:32:38 878

原创 简单数论合集

数论gcd这个就很简答了,直接看代码int gcd(int x,int y){return !y?x:gcd(y,x%y);}gcd也有一点点的性质主要还是 结合律 比较有用还有就是这个算法的复杂度合适最大呢,其实就是去求 斐波那契数列 的相邻两项的gcd,这也是一个比较神奇的性质太简单了,所以来一个难一点的exgcd这个可以干啥呢求 ax+by=n.之后就是代码void exgcd(int a,int b,int &x,int &y){ if(!b)

2021-09-17 20:50:03 124

原创 第七次noip模拟赛后总结加改错

前言还是第一道签到题没有做出来,但是感觉这一次的考试还不错,不过还是可以发现问题,其实就是对于已经学过的东西记忆十分不好,所以在清明节的时候我打算回顾一下已经学过的代码第一题这其实是一道萌萌题,显然假如一个串的长度为i,i>k ,那么假如前面k个都可以整除2^k,那么这个串必然也可以整除,这是因为(10的k次方可以被2的k次方整除,这个也比较好理解),所以只用就去对于每一个i,只用去看每一个前k为的串是不是满足被2的k次方整除,之后合并就欧克,复杂度估计是nk,符合要求int main(

2021-09-06 21:06:13 81

原创 noip第四次模拟赛赛后总结

前言感觉最近越来越会骗分了,但是就是各种的性质都有一点看不出来,简单的题目可以骗大部分得分,但是标答总是近在咫尺却拿不上第一题https://www.luogu.com.cn/problem/T197838这是一道简单题,想一想就可以理解首先去理解字典序最小,也就是要在前面的数字尽可能的少,那其实就可以想到贪心了(但是考试的时候并没有想到这个简简单单的方法,哎。。)假如第一个数不是1,那么我们是不是就在前面一直插入1,这样的构造一定是“有趣”的。但假如不是,其实就是另外的想法,假如这一个a[i

2021-08-30 20:28:30 59

原创 P5536核心城市

这道题是一个树的直径的一道变异板子题。首先去分析题目,每一个点到核心城市的距离是它到其中某一个的最小值,二我们要去找的最小值,就是在k个城市不断变化的过程中的所有距离的最大值的最小值其实题目会让你想到erf,但是没有办法去做,可以想到二分的复杂度严重超标,所以我们去看一看题目的性质,所有点距离的最大值,嗯。。。是不是不难想到这个最大值一定是在直径上,因为假如有一个点到某一个点的距离大于直径上的点,那么这个点一定是在直径上。所以我们就可以想到去在直径上做文章,这k个核心城市的核心是不是一定在这条直径的中

2021-08-26 20:54:42 90

原创 树型问题合集

树型问题lca见我的的另外一个dfs序我们知道两个点x,y如何快速的判断y是不是在x的子树内先上代码void dfs(int x){ l[x]=++cnt;//这个点何时进入dfs、 for(int i=head[x];i;i=nex[i]){ dfs(to[i]); } r[x]=cnt;//这个点何时出dfs}这里我们就可以得出,假设z是x一个子树,则l[x]<=l[z]<=r[z]<=r[x]如果要判断是不是子树内,只用判断dfs序就好了...

2021-08-22 12:00:59 84

原创 洛谷刷题笔记

刷题笔记这里呢会有一些我认为比较提供思路,但是又不是特别重要的内容p2700这个就是一个正着作难,反着好做,其实和星球大战很想,就是最大生成树的思路,每一次拿出的边看看左右端点的祖先是不是敌人,注意这里一定要是祖先,假如我们只对单独点去进行判断,那么在一堆我方点连在一起后,有连了一个敌人,那么这一个链都不可以连敌人了,所以一定是对于祖先的操作,最后并查集维护就好。...

2021-08-21 20:32:21 166

原创 最短路合集

最短路合集前言这里面有最短路的好多好多应用,不要错过啊dij板子看这里拓展分层图看这里最小路径树这个不是最小生成树,这个要求的是我们在图上找的这棵树的每一个点到源点的距离都是原原来的最小路的长度,并且这个树的边权和要最小这个可以用找前驱的方法去处理,也就是我们每一次松弛的时候都去记录是哪个边松弛了这个点,最后用dfs去找这棵树。注意这里有一个细节就是在松弛的时候if( dis[to[i]]>=dis[g]+val[i]) 这里加上“=”其实就是省略了一次判断,就是看这个图里面

2021-08-21 16:32:32 62

原创 分层图

分层图定义和应用其实就是对于一些题,他边的权值可以改变,并且每一条边改变的次数不多,这种我们可以用分层图去跑最短路至于定义,就是有k+1层,每层之间可以连边,每个层里面的点的边权是不变的,之后层和层之间是这样的,假如原来a,b,之间有边,那么下一层a2,b2之间也有边,并且a,b2之间有边,b,a2之间有边,至于这里层之间的边权就看题目是如何要求的,假如说这个是去修建高速,那么层之间肯定是只可以从上层到下层,毕竟你不可以说这条路在拆了。正确性其实这个和暴力有一点相似,我们的dij是会把每一个点都跑

2021-08-20 20:26:24 91

原创 spfa已死???(bushi)

spfa之前说这个spfa已经死了,但是今天看到一道题去维护变量之间额大小关系,第一想法是并查集,但是好像并查集并不可以维护查分约束的条件,所以我看了看题解,发现是我认为已经死了的spfa(思想还是松弛,还是松弛,还是松弛,其实就是一个优化的bellman ford,本质上就是bfs去找点,只要dis大就去松弛,之后看看这个点在不在队列里,如果不在就加入队列,之后一波操作完成之后就可以的到单元最短路,其实还是很easy的上代码void spfa(int x){ dis[x]=0; vis[x

2021-08-20 00:06:32 1244

原创 树链剖分

树链剖分前言哎,noi2021结束之后才开始学这个,d1t1的算法,我真是了,而且改了一下午就是一个快读写错了,mmd原理剖分,就是把一棵树给分成不同的链子,之后在这些链子上去进行操作,至于剖分的种类长链剖分(不常用)重链剖分(就是今天要去学习的)实链剖分(lct)那么什么是树剖的原理,其实就是对每一个点去找重儿子,之后再去剖分成一个个的链,每一次我dfs排序的时候先递归重儿子,最后用线段树去维护区间和之类的。先介绍一下每一个变量含义变量含义1.重儿子;就是一个节点的儿子中节点数最多的

2021-08-19 18:41:20 78

原创 NOIP2015 运输计划

运输计划心路历程我一直不太会二分答案,但是感觉做了几道01分数规划和二分答案的题有了一点理解,其实就是我们去找一个很大一个0,之后不断地去二分,看一看这个答案符不符合要求,下面讲解一下二分答案二分答案首先可以二分的题的答案都要满足一个要求,就是有单调性,比如这道题,假设时间T是我们二分出来的答案,并且这个答案符合这个题目,那么T+1一定可以,T-1一定不可以,这就是单调性转移到这道题里面,不就是我们去二分一个时间t,假如所有的计划再删掉某一条边之后的最大值满足<=t, 那么这个t是合法的,我

2021-08-17 14:57:18 101

原创 网络流初步

网络流初步这个知识最简单的网络流算法,至于最小割定理等等,等这篇的名字变为网络流算法的时候就补上了原理其实dini的算法的思想很简单,就是去找增广路,何为增广路,也就是原点到汇点的每一条边的边权都为非负的路,这个,而这个算法的核心就是通过反向边的加上来去增广,何为增广就是找增广路,并找到这一条路上的残余流量最小值d,给这条路的每一条边的流量加上的d,给反向边的容量也加上d,给ans也加上d,最后但找不到增广路的是时候,ans就是最大值代码实现其实dini的算法写起来很好写(我觉得图论算法都不难,不

2021-08-16 21:08:29 53

原创 树上差分例题

树上差分P3128这是我学完lca之后找的一道题,之后发现和lca有个毛线关系,差点下手就是五十行的lct,最后看了看题解就了解了树上差分的思想思想我们每一次对于两个点a,b的操作就是把a->lca(a,b)和lca(a,b)->b上的点加上1,我可以用差分的思想。大家想一下对于一个数列,我把(l,r)的每一个数加上1,是不是就是先把r+1,之后把(l-1)-1,最后求前缀和,就可以求出这个修改过的区间的和,那么树上是不是也是一样的,先把sum[a]++,sum[b]++,之后要想一下

2021-08-16 16:11:39 116

原创 树上找爸爸

倍增求lca原理我们定义fa[i][j] 是i向上走2^j 步的父亲,那么我们是不是可以通过dfs去预处理这个fa数组,具体就是fa[i][0] 肯定就是这个点的直系爸爸,我们在循环中每一次先向上跳 2^log(j-1) 在向上去跳一样的步子就可以求出fa[i][j]是谁了。之后如何去找lca呢,我们采用倒叙去找爸爸的方法,如图假如找6和4的lca,我们先将他们跳到同深度,之后先去找fa[4][log[deep]==fa[6][log[deep]]? 如果相同那么这个点一定在lca的上面,我们不

2021-08-16 15:09:39 88

原创 主席树

可持久化线段树原理什么是可持久化线段树呢,为我们知道对于一个区间[l,r]我们可以用线段树去维护这个区间最值,并且可以用权值线段树去维护区间[1,r]的第k大,but对于任意区间的第k大该如何去求呢,其实思想也很简单,我们只要开n个权值线段树,之后利用前缀和的思想就可以求出来了,但是开n个线段树这个空间复杂度实在太大,所以我们hjt大佬就开发出了主席树。图解例如,一列数,n为6,数分别为1 3 2 3 6 1首先,每棵树都是这样的:以第4棵线段树为例,1~4的数分别为1 3 2 3因为是同

2021-08-15 11:43:31 61

原创 配对堆

配对堆在stl里的priority——queue是一个很好用的堆,但是假如说我们要将两个堆去进行合并的话,普通的堆的时间和空间复杂度都大大超标,这时候我们就有了可合并堆,我个人认为配对堆会好些一点,所以就放弃左偏堆了(基本原理我们知道一个多叉树的存树方式 是父亲指向儿子,我们的配对堆其实也是一个多叉树,但是它的存树方式是儿子左兄弟,也就是我们用一个结构体去存堆struct heap{ int r;//right int s;//son int x;//value};int fa[100];

2021-08-14 12:57:47 134

原创 矩阵快速幂

矩阵快速幂快速幂再讲矩阵之前想要来做一下铺垫,什么是快速幂,我们知道2的n次方要用o(n)的时间求解,太慢了,我们可以每一次让次数除以二,底数平方,每一次当指数为奇数的时候,就把ans=ans*base,这样就可以用o(logn )的时间求出一个指数的值矩阵下面这张图来告诉你什么是矩阵,和矩阵乘法的定义...

2021-08-13 17:03:24 62

原创 背包问题

背包问题这一个是背包问题的全集,所以还会持续更新01背包背包中最经典的一个问题,有n个物品,每一个有价值v和权重w,一个包包容量为x,问取得最大价值为多少?二维的状态很好设计dp[i][j[表示拿第i个物品,用了j空间的最大值,那么转移方程也就可以得出dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i])也就是这个物品不拿所得的价值和拿上这一个物品所获得的价值的最大值,正确性显然。但其实空间复杂度还可以优化,我们发现这是一个之和上一个i有关的转移,所以可以用动

2021-08-12 20:26:22 51

原创 组合数学芝士加题

组合数学这是一个和高考接轨的东东,先复习一下加法和乘法原理,加法原理:就是一个点有三条路可以到达,那么现在有多了2条路,一共是不是2+3=5条路。乘法原理:三个点,第一个点有3条路到第二个点,第二个点有2条路到第三个点,一共第一个点到第三个点有6条路。排列数下一个就是排列数,这个主要是对顺序没要求的时候也用在这里插入图片描述组合数组合数,这个是ab,ba看成一种的时候用的例题助于理解![在这里插入图片描述](https://img-blog.csdnimg.cn/62ec433402c

2021-08-11 17:49:32 135

原创 dij告诉你拿金的路

dij告诉你拿金最短的路dijk求最小路这是我的一个接触的最短路算法,在之前看到了SPFA已死的多种言论之后我决定想去学dij,这个算法就类似于SPFA加了一个堆的优化,有一点贪心的思想在里面,其实本质上还是松弛,我们假设要找的点是x,那么我们先去找x所有的路,去更新dis,(注意dis最开始赋值为无穷大),之后入堆,我们每次拿出堆顶的的一个去松弛她所连接的点,之后知道所有都完成为止,其实不难,注意这个不可以去求有负环的最短路,如果有就还是用已经死掉(bushi)的SPFA最后模板来一手int di

2021-08-10 14:55:41 75

原创 DAG图的性质

1.DAG上必然存在出度为0的结点。2.DAG上若存在唯一出度为0的结点,则该结点可被DAG上其他所有结点到达。3.问在DAG上最少选择多少个点能够使得从这些点出发可以到达所有点,那么答案就是入度为0的点的个数。4.假设DAG上出度为0的结点有a个,入度为0的结点有b个,那么在加max(a,b)条边可以使得该有向图强连通。加边的方法:要为每个入度为0的点添加入边,为每个出度为0的点添加出边假定有 n 个入度为0的点,m个出度为0的点,如何加边?把所有入度为0的点编号 0,1,2,3,4 ….N

2021-08-09 16:28:01 605

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除