- 博客(150)
- 收藏
- 关注

原创 【2024保研经验贴】天津大学智能与计算学部7月份夏令营(机试+线下面)
刚刚结束929,想着现在的记忆必定是最深刻的,所以就先来说说我参加的第一个夏令营天大。本人背景:末二,rk前5%,无科研,有几个竞赛(数模、机器人等等)记得我是海投很多夏令营,几乎都没进,第一个进的是天大智算的大海营,听说进了两千多人,估计是报的都进了(但是报名有六级要求)
2024-10-02 20:26:52
829
3
原创 离散数学实验五c语言(并查集处理,Kruskal算法求最小生成树)
按照边长度从小到大开始加边,若该边两点的集合不为同一个,那么就将该边加入最小生成树中,totalvalue为最小生成树的权值,该权值加上该边的长度。定义ty存储每条边的信息,因为该图为一个无向图,因此x,y存储边的两点,len为该边的长度(权值),然后edge结构体数组则存储所有边的信息。判断加入的边是否会形成回路,看该边两点的集合是否为同一个,若为同一个就说明会形成回路,不为同一个就不会形成回路。定义ty2为最终加入最小生成树的边,ans数组存储组成最小生成树的所有边。首先先将所有点对应的集合设为自己。
2024-10-29 21:25:11
511
原创 离散数学实验四c语言(计算可达矩阵,判断性质:强连通性、单侧联通性质、无联通性质、弱联通性质)
(5)这样处理n次后,再对f矩阵处理,f矩阵此时的值为邻接矩阵乘以1-n次后所有矩阵值的相加,将f矩阵中有数字的值全改为1,即为两点之间可达。因此f就为邻接矩阵g的可达矩阵。(1)首先先根据有向图的可达矩阵来判断该图是否为强连通和单侧连通,若图中存在两点有边,则说明为单侧连通的;(2)因为此题求的为简单有向图的连通性质,因此两点间的距离不会大于点的个数(n),所以将邻接矩阵相乘n次即可。首先先将有向图的邻接矩阵g的可达矩阵求出,然后将有向图转换为无向图后,再将其邻接矩阵gw的可达矩阵fw求出。
2024-10-23 20:20:48
758
原创 离散数学实验三c语言(判断运算的性质:封闭性、可结合性、可交换性、幺元、零元、逆元、计算元素的阶、判断是否为特殊的代数系统)
Set结构用来存储集合元素及其性质等,str存储集合元素,ni存储每个元素的逆元,yao存储集合的幺元,ling存储集合的零元,YJ存储每个元素的阶,size存储集合元素个数,f为1表示该代数系统具有封闭性、jie为1表示该代数系统具有结合性、jiao为1表示该代数系统具有交换性、isni为1表示该集合的所有元素均具有逆元、isxun为1表示该代数系统的每个元素均具有阶。YJ每个元素默认值也为0。(1)集合s满足封闭性,结合性,交换性,有幺元,每个元素有逆元,每个元素都有阶,则该代数系统为循环群。
2024-10-16 09:16:49
956
原创 离散数学实验二c语言(输出关系矩阵,输出矩阵性质,输出自反闭包,对称闭包,传递闭包,判断矩阵是否为等价关系,相容关系,偏序关系)
如果出现横纵坐标不相同,且相反的两点,但是其只有一个为1,说明该集合存在a,b属于该集合,且有,没有序偶,则该矩阵不可能具有对称关系,将flagd = 0;如果出现横纵坐标不相同,且相反的两点,但是其为1,说明该集合存在a,b属于该集合,且有,序偶,则该矩阵不可能具有反对称关系,将flagfd = 0;如果出现横纵坐标相同的点,但是其不为1,说明该集合存在a属于集合s,但不具有序偶,则该矩阵不可能具有自反关系,将flagz = 0;
2024-10-15 10:41:56
1540
原创 离散数学实验一c语言(数理逻辑,输入命题公式,输出真值表,主析取范式,主合取范式,给出命题公式类别)
遇到变元也将其入栈,一但遇到右括号,那么就要再次出栈计算,计算后再将其入栈,直到遇到左括号为止,最后匹配完公式,还得继续计算剩下的操作符和变元。利用递归思想,分析str中所有的命题变元均有两个取值,即F、T,那么我们就递归的将每一个变元进行真值指派,即先令第一个变元为F,然后第二个变元为F......照这样将所有命题变元指派完后,存储该可能的命题公式的指派,然后回退return,即回到上一层将最后一个变元真值改为T,然后再记录,再回退,以此类推。主合取范式类似,即找到真值为F的析取式,将其合取起来。
2024-10-14 15:43:03
2286
2
原创 《数据结构》课程综合设计(zzu校园导航)(迪杰斯特拉算法)
目前根据郑州大学主校区面积区域的广大,以及南、北核心教学楼的教室分布密集且较多;另外,多数地图软件无法精细导航到一个具体的地点,容易造成原地转圈的烦恼。但是,我们转换思路,仅仅根据我们对于校园充分的熟悉度,给出了郑州大学主校区柳、荷、菊、松四个园区和南、北核心教学楼各个教室的名称信息及有线路联通的地点之间的距离,利用郑州大学主校区教室导航系统计算出给定的起点到终点之间的最近距离及最优路线。zzu教室导航系统主要提供给用户三个选项进行操作,分别为输出地图、教室导航、退出。
2024-10-11 10:52:00
1120
原创 【2024保研经验帖】联系老师相关建议
可能有些同学比较着急,害怕好导会被抢走,寒假期间就开始联系老师了,然后就开始提前进组,我有了解到一个同学,他是寒假就提前进组,还线下实习了(我都震惊,这么早),虽然最后他就去了这个学校,那可能结果应该是好的,但是还有个同学,他是下半学期联系的老师,然后暑假跑到老师那边实习,最后是被鸽了,相当于打了黑工。真正开始联系老师的时候,我还很害怕老师给我回信,回信就意味着要面试,后来发现,老师根本就回都不想回你,焦虑了很久,发了很多封邮件,到后边就已经无所谓面试不面试了,倒是给我个机会啊!,可能是你简历上写的。
2024-10-08 10:41:29
777
原创 【2024保研经验帖】东南大学计算机学院夏令营
背景:末211,专业计算机科学与技术,rk前5%,无科研,只有几个竞赛东南大学计算机学院夏令营需要老师,一个老师的推荐名额感觉应该挺多的,因为学硕和专硕都进了两百多人,总共四百多人面试,分了很多组,从早到晚。,夏令营就只有面试,只有一天。前期有线上的宣讲。由于听说这次本校的好像也一起参加夏令营了,因此感觉学硕的希望不大,所以报了专。
2024-10-05 10:34:55
778
原创 【2024保研经验帖】中山大学生物医学工程7月份夏令营
先说一下背景,末二,专业计算机科学与技术,rk前5%,无科研,只有几个竞赛。中山大学是可以同时报名很多个夏令营的,没想到都没进,机缘巧合下进了生医工的夏令营(招生要求上也有要计算机的)。生医工夏令营也是三天。
2024-10-04 10:52:18
816
原创 【2024保研经验帖】武汉大学测绘遥感国家重点实验室夏令营(计算机向)
先说本人背景:末211,rk前5%,无科研,有几个竞赛(数模、机器人等)武大的国重是我参加的第二个夏令营,武大国重这次有提前开几个,一个在中南大学,一个在吉林大学,还有在兰州大学,是在6月份的时候开的,当时没注意到,就只在报名了夏令营。听说的是,这几个分会场如果面试通过,是跟夏令营一起排名的,而且是要是进了分会场的面试,就不可以参加夏令营的面试了(应该是这样),所以今年大家可以提前看看有没有开分会场提前面试,如果有的话可以报名,门槛是一样的,这样可以省下夏令营的时间。
2024-10-03 10:23:30
921
原创 刷题记录(NC16562 开车旅行)(树上倍增)
3、对于询问一,给出x0,枚举每个城市,求出a行驶的路程和b行驶的路程,然后进行比值计算(比值计算可以换成乘法计算),那么这个根据出发城市s,总行驶路程x,求出a行驶的路程和b行驶的路程这个过程在询问二中也有出现,因此可以维护成一个函数。说明下数组:dis[i][j]表示从i点出发,j=0表示最短距离点,j=1表示次短距离点,nxt[i][j]表示从i点出发,j=0表示最短距离,j=1表示次短距离。f[i][j][0/1]维护从i点出发,走2^j次方轮,0表示A走的次短距离,1表示B走的次短距离。
2023-01-06 15:44:51
264
原创 刷题记录(NC235654 牛可乐和公平点)(树上倍增)
(1)该中点为两点的lca点,此时若两点a,b的深度相同,则lca点到两点间的距离(经过的边数)一定相同,此时满足“中”点概念的点为总点数 - a'(父亲为lca点,为a点的祖先)的孩子节点数 - b'(父亲为lca点,为b点的祖先)的孩子节点数。3、通过分析可以得出,我们需要维护出每个节点的深度,孩子数量,f数组(f[i][j]表示i节点往上的2^j个节点的点),可以通过dfs和求lca得出,对于如何求祖先中,指定父亲的节点,可以利用类似于lca的求法,一步步往上判断,具体看代码。以上可以通过画图分析。
2023-01-05 20:55:02
258
原创 刷题记录(NC16527 货车运输)(树上倍增)
2、通过画图观察样例可以发现,要求两点间最小权值的最大值,首先这两点要连通,其次才是找一条有着尽可能大的权值分布的路径,再在这条路径上找权值的最小值,那么选的边就为最大生成图上的边。4、然后是如何求该最大生成图上,两点间边的最小权值,利用树上倍增的思想,维护一个数组f,f[i][j]表示i节点向上2^j的节点,w[i][j]表示i节点向上2^j路径上的最小权值。5、初始值,f[i][0] = i节点的父亲,w[i][0] = (若i节点为根结点,那么其为一个最大值,若不是根结点,为与父亲相连的边的权值)
2023-01-04 20:54:55
264
原创 刷题记录(NC22494 选点)(dfs序)
1、选择根结点,那么其子树要比根结点来得大,选择左子树上一点,那么其右子树上的数字选择要比该左子树上选的点要小。按照dfs序来按照根右左的顺序来排列各点的权值,那么符合要求的最多选点数目为该序列的最长上升子序列。2、对于题目的n,m的范围为10^5,可以利用二分优化来求.
2022-12-30 20:47:22
182
原创 刷题记录(NC23051 华华和月月种树)(dfs序)
2、对于操作2,利用dfs序,维护出两个数组,一个l[N]表示该点的dfs序中的编号,r[N]表示该点dfs序的孩子节点的最后一个下标。那么对于区间加操作,可以利用dfs序维护出范围,然后求和。1、转换思想:即根据所有操作来建树,利用线段树。有关于将一点长出一个为权值为0的节点,可以当作将该权值清为0。3、对于操作3,可以利用树状数组来求该点的权值。4、线段树的tree值,也为lazy值。
2022-12-27 20:55:59
101
原创 刷题记录(NC13611 树)(dfs序)
2、那么如果按照dfs的顺序来染色,则对于一个孩子结点,染的颜色要么与父亲相同,要么就是用之前从未出现的颜色来染,因为按照dfs顺序来染色,则染到该点时,该点的父亲、祖先、某些兄弟的颜色已经全染了。如果与除了父亲颜色外其他祖先、兄弟的颜色,那么无法保证从该祖先或者兄弟到该点的颜色均相同。dp[i][j] += dp[i][j-1](该点染的颜色与父亲相同) + dp[i-1][j-1] * (k-(j-1))(该点染一种之前从未出现过的颜色,则选择的颜色数为总颜色数(k) - 之前用的颜色数(j-1))
2022-12-22 20:51:56
107
原创 刷题记录(NC17450 因数个数和、NC218398 小G的约数、NC204916 浅尝辄止)(数论分块)
2、对于sqrt(x)范围内的贡献,即找i*(刚刚好大于sqrt(x))还在x范围内的数字的个数,那么该数的范围为(sqrt(x)+1 -> x/i)即11有因子11,12有因子12....个数为(100-11+1)这就是利用sqrt(x)的因子个数。然后有2*11,2*12,...2*50,即22有11因子,24有12因子。
2022-12-20 21:08:56
338
原创 刷题记录(NC16596 [NOIP2011]计算系数(排列组合))
的系数为(因为不会打排列组合的符号,就用文字描述)k的n的组合 *3、对于组合数,可以利用杨辉三角快速求出。2、对于求一个数的次方,可以采用快速幂。
2022-12-15 21:02:42
82
原创 刷题记录(NC15532 Happy Running)
同理,对于k>x,若AB为一定,此时满足B>k-x即可,计算为:(2*x-k)*(2*x-k)*0.5/(x*x)所以当前的概率可以通过画图来计算,横坐标为起点到A的距离,纵坐标为起点到B的距离,则A
2022-12-13 21:03:52
111
原创 刷题记录(NC50614 取石子游戏 1、NC50615 取石子游戏 2、NC19156 石子游戏、NC236262 二叉树游戏)(博弈论)
2、先手是在奇数轮拿奇数个点,后手是在偶数轮拿奇数个点,那么若奇数拿好节点后,其总的被拿掉的节点数应该为奇数,即奇数个奇数相加为奇数;同理,后手拿好节点后,其总的被拿掉的节点数为偶数,即偶数个奇数相加为偶数。2、那么总共分的次数为奇数的个数,和总数(奇数+偶数)-1,因为每次奇数分都会有一个偶数,而偶数合成的次数,为总数-1。2、若不为(1+k)的倍数,那么先手先将其拿为(1+k)的倍数,然后根据后手拿的个数,来凑1+k。1、如果石子个数为1+k的倍数,那么先手必败,否则先手必胜。
2022-12-12 21:16:01
249
原创 刷题记录(NC236214 石子游戏、NC223888 红色和紫色、NC201610 Game)(博弈论)
1、观察发现,若n*m为奇数时,则先手可以先涂中心的方格,然后开始与后手对称涂格子。若为偶数,那么后手只要与先手涂对称的格子即可。2、计算给出的数的质因子的个数cnt,那么只cnt-1即为要经过的步数,若该数为奇数,则先手必胜,否则,先手必败。1、当集合中全剩下质因子时,那么就不可以再分解了。因此我们计算要经过多少步使集合中只剩下质因子。1、该题目与NIM博弈相同,若所有石子数的异或和为0,则先手必败,反之先手必胜。
2022-12-11 14:36:39
145
原创 刷题记录(NC25354 愉快的递推式、NC15666 又见斐波那契)
1、首先求出递推式数组:关于f(n) = 3*f(n-1) + 2*f(n-2) + 2int a[3][3] = { {3, 2, 2}, {1, 0, 0}, {0, 0, 1}}; 与g{ f(n-1), f(n-2), 1 }相乘,得到下一个递推式{f(n), f(n-1), 1}2、确定初始值f[1] = f[2] = 1, 即刚开始{ f(n-1), f(n-2), 1 }数组为{1, 1, 1}3、一个矩阵乘法计算a*g, 一个计算a*aa*ga*a矩阵快
2022-12-07 00:02:15
238
原创 刷题记录(NC20545 [HEOI2012]采花)(树状数组)
1、题目要求求出能采到花的颜色数。2、记下每种颜色的前一个位置,和前前个位置。当一朵花第一次出现时,我们将其当作该种花前前个位置。当一朵花出现第二次时,将该位置当作该种花前一个位置。并且说明所有包含前前个花的区间都可以采该颜色的花,所以颜色数+1。当一朵花出现三次以上时,我们将包含前一朵花的区间+1,因为如果左区间从前一朵花开始,到当前这朵花结束,刚刚好为两朵花,那么颜色数可以+1。而对于包含前前朵花的区间则要-1,不然颜色就会重复计算3、我们将所求的区间按照右区间排序,从小到大开始求,最后记得要按照题目给
2022-12-04 21:42:09
95
原创 刷题记录(NC23054 华华开始学信息学)(树状数组)
然后再从将add数组计算进去,如何计算[x,y]区间的add数组的影响呢,可以发现,比如对于以y为结尾的区间,我们可以用该区间内的最后一个数y对于add数组存在数的下标j相除,所得的数为以该最后数y为结尾的区间内,总共有因子j的总个数。对于d的操作,如果d很大的话,说明其计算因子的数目较少,就直接计算因子,然后相加,如果因子小,那么计算因子的操作就多,可以利用一个add数组,表示当前因子为x的+y。找数组里下标所有包含i因子的数 ,首先a[i]这个区间是包含i的最小下标区间,然后我们再找其他区间也包含i。
2022-12-01 20:45:08
133
原创 刷题记录(NC16610 [NOIP2009]Hankson的趣味题)
3、求lcm时计算a*b,所以要开long long,也可以不开,就将运算顺序调换,lcm(a, b) = a/gcd(a, b)*b;所以可以枚举b1的因子作为x,然后验证gcd(x, a0) = a1, lcm(x, b0) = b1是否符合。1、根据题目要求求gcd(x, a0) = a1, lcm(x, b0) = b1;那么b1%x == 0。2、减少复杂度:循环sqrt(b1)次,找到i为b1的因子,说明b1/i如果不为i,那么也为b1的因子。
2022-11-22 22:14:25
121
原创 刷题记录(NC208253 只能吃土豆的牛牛)
1、首先根据题目给出的样例分析可以发现,1、3、4(=1+3)、9、10(=1+9)、12(=9+3)、13(=1+9+3)……2、因此我们可以利用二进制数的排列,来计算的K个数,比如0100表示为ans = 0+0+3^(3-1) = 9。其排序是一个二进制数的排列,0001 0010 0011 0100....。比如第三个0011 ,如果该位置有1,就加上该位的三次方。
2022-11-20 20:30:25
130
原创 刷题记录(NC208250 牛牛的最美味和最不美味的零食)
否则,[x, y]就包括左右区间,找左区间[x, tree[2*p].num]+右区间[1, y-tree[2*p].num](从1开始)因为题目是将节点将区间去掉,如何表示区间去掉,可以加一个数num表示当前区间里的元素个数。如果左区间的元素个数大于y,说明区间[x, y]全在左区间。如果左区间元素个数小于x,说明区间[x, y]全在右区间。查询区间[x, y](第x个元素到第y个元素)如果左区间的元素个数大于x,说明x在左区间内。如果元素个数小于x,说明x在右区间。比方说x在线段树的相对位置进行转换。
2022-11-16 20:44:43
418
原创 刷题记录(NC236242 序列求和、NC50428 数星星 Stars)
1、因为题目给出的星星顺序是按照y从小到大,x从小到大,在0-maxx(x)中开线段树,对于当前x,看小于等于x区间内是否出现星星,即为该星星的等级数量。2、对于当前输入的x,先查询[0, x]内星星的个数,然后记上该星星的等级,然后再在线段树的x位置+1,加上当前星星。1、利用开根号的性质,一个数在开有限次根号后就会变成1,利用这个性质,当该数开根号为1时,就不要再进行开根号了。2、big标记表示当前区间是否全开为1,所以big区间更新取左右区间的最大值,如果为1,说明左右区间均全开为1。
2022-11-15 21:06:39
140
原创 牛客练习赛105(A切蛋糕的贝贝、B抱歉,这没有集美、D点分治分点)
1、题目已经定下来了切的块数,即六块,且比例为1:1:4:5:1:4,那么只有刚刚好为题目要求的比例的倍数,才可以切。1、可以发现要是序列的排序和其所分配的号至少要出现一个公倍数为偶数,那么至少要有一个偶数在偶数位,直接这样求很麻烦,反过来我们可以求所有的奇数在偶数位的情况数,然后将总数的全排列个数减去该数即可。4、将最小堆改为利用最大堆,并且有关路径更新的要求也不同,可以发现,求出两点的d值,后序再次经过时,其d值也会受先前的d值影响,那么就可以用来更新。d(u,v) = max(u->v的最短路径);
2022-11-14 21:48:23
319
原创 刷题记录(NC19246 数据结构)
首先对于两个标记是先加还是先乘很难搞清,统一设为(xi+p1)*p2的形式,即lazy1要随着lazy2更新,每次对该区间进行乘操作时,lazy1也跟着*k,注意这里两个区间的更新不可以调换,因为区间平方和要利用区间和,因此区间平方和要先计算,如果调换,那么就会重复计算。因此我们只要将该区间的平方和 += 该区间的和*2*k + 该区间长度*k。区间平方和*k² = ∑(每个元素*k)²,因此区间平方和直接乘k²即可。区间和*k = ∑每个元素*k,因此区间和直接乘k即可。同样的分析对于区间和。
2022-11-12 15:39:28
440
原创 刷题记录(NC23047 华华给月月出题,NC15164 Big Water Problem,NC50454 A Simple Problem with Integers)
因此,对于素数的幂,我们就利用快速幂来求,而对于合数的幂,我们利用其因数的幂相乘求出。2、 可以在线性筛素数时,额外开一个数组来专门存储和计算幂。1、要将1-n的所有数的n次方给求出来进行异或,可以发现。哪位大佬可以帮忙看看是哪里出问题了,一直找不到错误。3、最后在1-n内的所有幂进行异或即可。
2022-11-10 22:05:35
125
原创 刷题记录(NC224933 漂亮数)
2、在线性筛中加一个数组vis来记录漂亮数,st数组表示当前数是否为素数,注意在st == 0,即判断当前数为素数时,先不要将其置为1,在该素数与前面素数在相乘的过程中还需要该判断。所以期间只将该素数所合成的合数的st置为1,而本身不为1,反正后序也不会再次判断。1、求两个素数的乘积,可以在线性筛中找出所有的素数,然后对当前素数乘以当前已找到的素数记录下来,最后可以利用前缀和,求区间中满足条件的数量。
2022-11-09 23:22:01
112
原创 刷题记录(NC229005 【模板】同余方程)
2、如何保证求出的x为最小整数解,因为x要在mod b的条件下最小,那么就将x一直减去b,找到那个刚刚好为正整数的解即可。1、ax≡1(modb) 可以转换成 ax+by = 1,那么我们要求的x就可以通过扩展欧几里得算法求出。那么那些(a,b)!
2022-11-04 20:05:35
96
原创 刷题记录(NC20313 [SDOI2008]仪仗队)
1、首先分析题目,对于只能看到的点,设原点坐标为(0,0),则除去横纵坐标上能看到的两点(0, 1)、(1, 0),和对角线上的(1, 1),我们能看到的点为(2,3)、(3,5)等等等,对于(10,15)该点必定被(2,3)给挡住。其横坐标必定是大于纵坐标的,且对于x = n,其能看到的点必定为与其互质的数,即φ(n),那么该题就转换成从求欧拉函数的和。那么可以发现,该两数的质因子均相同,那么就只有前面的N不同, 则两数相乘的欧拉函数就相差乘一个当前遍历的素数。当a,b互质时,φ(a。
2022-11-03 20:39:16
255
原创 刷题记录(NC14399 素数判断,NC235228 素数的个数,NC23050 华华对月月的忠诚)
那么gcd(f[i], f[i-1]) = gcd(f[i-1], f[i] - f[i-1]) = gcd(f[i-1], f[i-2]);2、构造法,可以先将区间内的合数标记,则找到两个乘数相乘在区间范围内,就将其标记,最后遍历一遍区间,将未标记的记上个数。1、由fi = f[i-1]+f[i-2],以及求最大公约数的公式gcd(a, b) = gcd(b, a-b);照这样推下去,那么gcd(f[i], f[i-1]) = gcd(a, b);1、如果为素数就直接输出,如果不为素数,要输出其质因子。
2022-11-02 21:35:35
296
原创 刷题记录(NC25064 [USACO 2007 Mar G]Ranking the Cows)
则当i点的k(中间点)位置为1,那么该中间点为1的位置,即中间点可以到达的点,i也可以到达,那么就将b[i]|=b[k];3、因为题目要求查看任意两点的大小关系,利用floyd算法,枚举起点终点,中间点,若起点到中间点、中间点到起点有边,则将起点到终点连边。5、答案对所有的两点间看是否已经确定了关系,即b[i][j] == 1 || b[j][i] == 1,保证不判断相同的两点,第二层循环从i+1开始。1、本题要求求出在题目给出的大小关系下,最少还需要几对大小关系才可以得知所有数字的大小关系。
2022-10-30 22:10:31
124
原创 刷题记录(NC236210 传送门)
1、建图:对于同一类型的传送门,各点间可以连接ti长度的边,但是如果对于给出的点都两两连边,会导致复杂度过大,我们可以考虑对于每一种类型的传送门,设置一个总点,使该类型的点直接与该点连ti长度的双向边,保证同一类型的传送门的点之间,一定要通过该总点才能访问。那么这就可以保证同一类型的点之间的长度为ti。2、答案会很大,要开longlong,且dis的初始化最好要大一点。
2022-10-27 20:46:44
144
原创 刷题记录(NC22594 Rinne Loves Graph)
1、在用dijkstra求最短路的过程中加入了警戒城市,可以在dis最短路数组中加入当前过了几个警戒城市,即再开一维。在vis数组也开一维。在求最短路的过程中,在多加一个判断当前经过的警戒城市是否超过要求,其余就与dijkstra求最短路算法类似。
2022-10-26 20:05:53
110
原创 刷题记录(NC19987 [HAOI2012]ROAD)
3、对于所经过的最短路数量,假如一条边为最短路所经过的,那么起点到该边起点的最短路的数量num,和该边终点到终点的最短路数量num2,两个数量相乘即为该边最短路的数量。通俗的讲,一点的num为起点到该点的最短路数量,num2为该点到终点的最短路的数量。5、总结:对所有点都跑一遍dijkstra和dfs,每边的最短路数量ans[i]+=num[该边的起点]*num2[该点的终点](每次以不同的点作为起点时,每次更新)2、求出所有的最短路,用dijkstra算法求出以所有点为起点的最短路。
2022-10-21 21:18:59
92
数据据结构课程设计-zzu校园导航(迪杰斯特拉算法)
2024-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人