自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Tarjan算法(割点)模板

但是这里有个问题,如果最小的一条边是桥的话。我们删除后,会出现两个新的连通块。如果是奇数边,我们考虑将最小的一条边删除。果图是偶数条边,那么一定可以全取到。用tarjan算法求割点和桥。

2024-11-06 22:02:47 145

原创 Kruskal 重构树模板

每第⼀次到达⼀个点将获得点权等值的声望加成。经过⼀条边需要满⾜边权等值的最低声望限制。多次给出起点和初始声望,询问能达到的最⼤声望。向上找到第⼀条不能通过的边(即,该边 下⾯的⼦树的 叶⼦点权和 加上 初始声望 ⼩于该边边权),把 下⾯⼦树的 叶⼦点权和 加上 初始声望 即为答案。:原图中两个点间所有路径上的边最大权值的最小值 = 最小生成树上两点简单路径的边最大权值 == Kruskal重构树上两点 LCA 的点权。kruskal重构树模板是基于kruskal最小生成树的一种算法。

2024-11-04 21:52:21 308

原创 与树相关的一些问题

2.树的最近公共祖先(LCA)

2024-10-07 19:53:19 172

原创 国庆集训赛-1006

广度优先搜索,并且在遍历到每一个点的时候储存一下每一个点的上一个节点,就可以得到最短的路径。

2024-10-05 21:45:03 441

原创 图论-最短路问题(Dijkstra和Floyd)

时间复杂度:O((n+m)logn)

2024-08-08 17:56:15 220

原创 2024百度之星初赛第一场 跑步

跑步的终止是当所以有都同时到达终点,不难想到,这时一号跑的圈数是1~n的最小公倍数,设这个数为p,所以第i个人跑的圈数则是p/i。第i个人与第j个人碰面的次数为p/i-p/j。我们可以用质数筛,筛出1~n的所以质数,然后在求每一个质数的最大次数,这个时间复杂的接近O(n)。这个题的难点有两个,第一个是在O(n)的时间求出1~n的最小公倍数p。最后计算总的碰面次数就可以得到答案了。第二个是求出每一个人跑的圈数。

2024-06-13 20:38:00 637

原创 Codeforces Round 836 (Div. 2) C. Almost All Multiples

感觉这个题的这个构造方式很巧妙,所以记下来(模仿的大佬的代码,大佬就是强QWQ)

2024-06-01 20:56:09 245

原创 The 2024 ICPC Kunming Invitational Contest E - Relearn through Review

把注释的那一行去掉就变成O(n*logn)的算法了。

2024-05-27 21:11:36 822

原创 在数字较大时快速计算排列数A(n, m)与组合数C(n, m)取模质数后的结果

(2)p1=2 ==> 可以对区间[1,2]进行操作,假设区间[1,2]为2 1那么Alice的最优操作是将1移动到第一位,那么Bob输,否则无论Alice如何操作,都会将一个大于等于2的数移动到第一位,那么Bob只需再将2移动到第一位,就会导致Alice使用2次2,导致Alice输,即Bob赢,共有C(8,1)*A(8,8)。题意:如果p1=k,那么可以对区间[1,k]进行任意顺序重排列,谁先用两次相同的p1,谁就输。分析Bob赢的种数:k=3 ==> C(7,1)*C(6,1)*A(7,7)

2024-05-09 16:52:06 491 1

原创 卢卡斯定理/Lucas 定理 快速计算组合数

【代码】卢卡斯定理/Lucas 定理 快速计算组合数。

2024-05-09 16:27:57 130 1

原创 快速幂 欧拉筛 莫队 ST表 线段树模板

【代码】快速幂 欧拉筛的模板。

2024-05-09 15:44:18 221 1

原创 Educational Codeforces Round 162 (Rated for Div. 2) D. Slimes

【代码】Educational Codeforces Round 162 (Rated for Div. 2) D. Slimes。

2024-04-25 19:23:09 120 1

原创 Codeforces Round 939 (Div. 2) D. Nene and the Mex Operator

题目求的是你可以得到的最大的数组a的和,操作数,以及具体的操作。举个列子,对于样例3,a数组为:1 100 2 1,我们dfs得到的最佳选择方法为0,0,1,1,就是只对[3,4],这个区间进行mex,最终得到了1,100,2,2。然后,我们可以看到这个题目的n特别小,我们直接暴力求解,2^18才只有262144,用dfs找选择进行mex操作所有区间,每一个元素选与不选,0表示不选,1表示选。注意,如果dfs得到的选择数组是1,0,1,1,那么要进行的mex操作的区间为[1,1],[3,4]。

2024-04-16 21:18:15 595 3

原创 Codeforces Round 904 (Div. 2) C. Medium Design

题意:选任意个区间,对区间的元素加1,然后求进行这些操作后数组a最大值于最小值的差值。

2024-03-28 20:34:02 170

原创 Codeforces Round 926 (Div. 2) D - Sasha and a Walk in the City

题意:这个题的题意我看了好久好久才看懂的QWQ,就是在这个树上选择一些坏的点,如果这种选法使得树上没有任何一条路径上有三个及以上的坏的点,那么这种选法就是合法的,题目要求的是一共有多少种选法,答案对998244353取模。

2024-03-28 11:49:18 155

原创 Codeforces Round 936 (Div. 2) D. Birthday Gift

这个四位二进制数组的最高位即第四位的值分别为0,1,0,1,0,0,1,1,0,我们想要让每一子段异或的结果都为0,就要让每个子段的1的个数为1,所以我们这样划分(0),(1,0,1),(0),(0),(1,1),(0),将这个数组a划分之后,相当于是把这个子段的数绑定起来,所以我们直接用这个子段异或后的结果来代替这个子段,这样给我们的下一次迭代带来的巨大的方便。所以对于这个题,我们可以从高位开始迭代,为了方便起见,我们将x+1,让后求小于x+1的值。这是一个有关位运算的题目,写过这个题目(

2024-03-26 16:21:09 475

原创 二分算法讲解(二分//+二分答案)

注意 这两种写法的mid的取法和区间的取舍方式是配套搭配的,如果混淆使用就可能造成死循环的出现。对于整数域上的二分,需要注意终止边界、区间取舍时候的开闭情况,否则有可能会造成死循环的出现。r = mid-1, l=mid, mid = (l+r+1)>>1 搭配使用。r = mid, l=mid+1, mid = (l+r)>>1 搭配使用。对于实数域上的二分,需要注意精度问题,否则得出的答案可能不符合题目要求。//二、实数域上的二分。

2024-03-24 14:59:17 142

空空如也

空空如也

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

TA关注的人

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