自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 补题list

数据结构2018CCPC吉林赛区 Lovers线段树2019中山大学程序设计竞赛 Party线段树牛客练习赛69 E.子串线段树The Preliminary Contest for ICPC Asia Nanjing 2019 I. Washing clothes李超树2019 ICPC Asia Xuzhou Regional H. Yuuki and a problem带修主席树The 2019 Asia Nanchang First Round Online Pro.....

2020-10-07 22:38:09 799 2

原创 2024“钉耙编程”中国大学生算法设计超级联赛(1)(9/9/13)

②3->1,3->2,也就是(f[1]<f[3]与g[1]<g[3]不同时成立)且(f[2]<f[3]与g[2]<g[3]不同时成立)dp[i][j][k]表示第一个子序列选的最后一个是ai,第二个选的最后一个是aj,第三个选的最后是ak时的方案数。①1->2,1->3,这要求f[1]<f[2]且g[1]<g[2]且f[1]<f[3]且g[1]<g[3],实际T(T<=1e4)组样例,字符集大小n(n<=26),第i种字符是ci,有hi个,sumhi<=1e7。

2024-07-20 22:54:02 993

原创 Codeforces Round #956 (Div. 2) and ByteRace 2024 E. I Love Balls(概率期望)

n-k+1一半向上取整就是(n-k+2)/2,同理n-k个一般向上取整(n-k+1)/2。特殊球不会改变普通球的顺序,所以都是alice拿一半里较多的部分。另外一个做法是,根据E(x+y)=E(x)+E(y),可以把特殊球的总分集在一个特殊球上,普通球同理。每个特殊球独立地来看,在每个空隙的概率相同。也可以看成是摊成平均分摊在这若干个球上。所以分别统计特殊球和非特殊球的分数。

2024-07-11 04:25:20 235

原创 Educational Codeforces Round 167 (Rated for Div. 2) F. Simultaneous Coloring(动态图加点维护强连通分量scc)

否则说明加完了也没通,拿着这些边s2在[l,mid]缩点得到的图的基础上,递归[mid+1,r]如果边两端已经在同一个连通分量里,说明是更早就通了,拿着这些边s1,递归[l,mid],考虑颜色,B 的话就 u->v,R 的话就 v->u,然后求强连通分量scc,首先,转成二分图,左侧每行一个点1到点n,右侧每列一个点1到点m,而钦定大小为k的时候,k=1的时候代价为0,k>1的时候是k^2,所以分治,对于当前边集,把[l,mid]操作里的边全加上,所以,总代价是不为1的scc的大小的平方和。

2024-07-11 03:25:18 157

原创 “金山-讯飞”杯2024年武汉理工大学程序设计竞赛 A. Mobiusp败走***(思维题-点双连通分量、连通性)

和1并不在一个点双里,但是可以先把.换到(1,2)的位置里,使之在同一个点双里。所以最优策略是先把.换到(x,y)的位置,然后判断.和1在不在一个环里。手玩发现,能换的话,当且仅当.和1在一个环里,而这就是点双连通分量。2. 判断(x,y)和1在同一个连通分量里。1. 判断删掉1时,.和(x,y)联通。

2024-07-11 03:11:30 464

原创 洛谷P10716【MX-X1-T4】「KDOI-05」简单的字符串问题(扩展kmp+set+二分+扫描线树状数组)

然后扫描线,每个i有一个[i,i+z[i]-1]的区间,在这个区间内以j结尾时,和前缀的lcp固定为[i,j]这个需要预处理mn[i][j]表示前i个字符出现j次时的结尾处的最小下标,没有的话就是n+1。然后[i,i+z[i]-1]的扫描线保证了以p结尾的一定是一个当前合法的A串,对于位置p,出现次数cnt,二分找到满足mn[x][cnt]<=p的最大x,长度x的前缀出现了cnt次,那么短于长度x的前缀一定出现了cnt次,对于大于一次的情况,先二分当前最大的可行长度x,对于每个i,先特判只出现一次的情况。

2024-07-10 22:49:41 250

原创 Denso Create Programming Contest 2024(AtCoder Beginner Contest 361)G. Go Territory(思维妙妙题 并查集)

记最底下一行的线段点号是1(y=-1所在的行的线段,与(-1,-1)联通)最后答案就是和点号1不在同一个并查集内的线段长度之和。只有没合到的部分才是在多边形内的。相邻行线段相交的话就合并一下。合在一起的都是在多边形外的,给每行的一段创建一条线段。

2024-07-07 02:10:40 274

原创 洛谷P7044 「MCOI-03」括号(栈括号的贡献 组合数经典问题)

这样对于不包含这个(i,j)对的区间[l,r](1<=l<=i,i<=r<j)来说,(i,j)对都是有贡献的,这样的区间数是i*(j-i)k>1时,需要选长度为k的序列l[]、r[],满足l[j]∈[1,i],l[j]<=l[j+1],r[1]<j,r[j]<=r[j+1]r序列,由于有r[1]<j的限制,可以用在[i,n]里任取减去在[j,n]里任取,方案数是。k=1时,需要选长度为1的序列l[]、r[],满足l[1]∈[1,i],r[1]<j。代入k=1,其实发现也成立。记第一次选的右端点x,

2024-07-04 10:24:02 416

原创 2024科技文化节程序设计竞赛

所以分别,正序双指针维护上一行dp[i-1][j]-a[i-1][j],逆序双指针维护上一行dp[i-1][j]+a[i-1][j]但是注意到从上一行比当前值小的转移,就是dp[i][k]=min(dp[i-1][j]+a[i][k]-a[i-1][j])从上一行比当前值大的转移,就是dp[i][k]=min(dp[i-1][j]+a[i-1][j]-a[i][k])相交的,[1,50]和[10,100],答案=(100-1)-(50-10)=100+10-(1+50)

2024-07-01 00:01:41 907

原创 牛客挑战赛75 D. 不存在的玩家(sg图dp)

其实想了想,和20年小米邀请赛决赛这个G题的dp思路是一样的,姑且称为sg图dp吧。本题就是先预处理f[i][j]表示i个点与j个点里至少一个点联通,按sg值从大到小dp,每次补上全局sg值-1的这些点,感觉没想到就怎么都想不到,想到了就能秒了。然后每次把j个点作为一个新sg值加进去。

2024-06-27 02:56:16 218

原创 Codeforces Round 955 (Div. 2, with prizes from NEAR!) F. Sorting Problem Again(multiset二分/线段树二分)

前面那段的最大值只能小于等于这一段最小值,后面那段的最小值只能大于等于这段最大值。对于存在逆序的部分,记录下来这一段最左最右的位置,求出这一段最小值和最大值。感觉pyy这个代码写的还是挺巧妙的,也避免了使用线段树求区间最值。分别二分即可,可以线段树二分,也可以在multiset上二分。一段增序(非严格),一段存在逆序的部分,一段增序(非严格)线段树+set或者multiset均可。注意到序列由最多三段拼接而成,灵茶群、propane代码。贴一下灵茶群群友的图,

2024-06-27 02:08:58 319

原创 Petrozavodsk Programming Camp Winter 2018 Day 6: Grand Prix of Gomel K. Kids Aren‘t Alright(容斥好题)

那么这种集合的数量恰好等于 f_(y/x),也就是把 f_m 减去所有 d(m/i)*f(i) 应该就行了。每个质因子有两个集合,1e18最多有15个不同质因子,最多有30个集合,暴力枚举是O(2^30)的。然后考虑容斥掉,就是这里面会出现 gcd=x, lcm=y 的集合,且 (x,y)!对于每个质因子p,我们要用全集,减掉gcd是pi的倍数的集合,也要减掉lcm不是pi^ai的集合。求非空集合的数量,满足gcd=1,lcm=m(m<=1e18),答案取模998244353。

2024-06-27 01:13:40 377

原创 Codeforces Round 955 (Div. 2, with prizes from NEAR!) E. Number of k-good subarrays(数位dp 区间合并)

赛后发现这个区间即使不等长也是可以merge的,所以就是线段树区间合并类似的操作。赛中想的是,枚举l和r不同的位是哪一位,然后左右分治往上merge答案。这个和代码1的区别就在于是递推的,可以直接对二进制位这些区间做合并。数位dp+分治的一发乱搞,枚举数对(l,r)是在哪一位有的diff。每个2的幂次的长度的区间,对应一个区间的答案,可以直接merge。jiangly、kilo、starsilk代码。记忆化搜索写的数位dp,然后是一个区间合并。

2024-06-26 03:16:17 629

原创 Codeforces Round 954 (Div. 3) G2. Permutation Problem (Hard Version)(数论)

这个时间复杂度应该可以过G2,但是这个G2卡空间,写map会mle43,手写哈希也卡不过。给定n(n<=5e5)的排列p,求满足pi*pj是i*j倍数的(i,j)对数。(pi/i)*(pj/j)=k,比如,(4/3)*(9/2)=6,一定存在pi的约数x、pj的约数y满足(2/3)*(3/2)=1。实际t(t<=1e4)组数据,保证sumn不超过5e5。暴力这么做是一个log一个约数个数d(n)的。参考了一些选手的写法,写成了倍数枚举的形式。可以过G1,但是会在G2上MLE。朴素想法,时间复杂度是对的,

2024-06-25 19:59:20 156

原创 洛谷 P10584 [蓝桥杯 2024 国 A] 数学题(整除分块+杜教筛)

参考了两篇洛谷题解,第一篇能得出这个式子,第二篇有比较严格的复杂度分析。结合去年蓝桥杯洛谷P9238,基本就能得出这题的正确做法。

2024-06-23 02:26:36 456

原创 记一道MO数学练习题

这两部分重复统计了,重复统计的部分有9种,左上角(x,y)(1<=x<=3,1<=y<=3)比如,左上角的块是(1,1)时,有(1,1)(1,4)(4,1)(4,4)这种。枚举起始第几行填的,有1、4、7、10,2、5、8,3、6、9三种可能。也就是说(1,1)填1之后,(1,4)要填1,(1,7)要填1,然后第一行共线了之后,第四行共线,第七行共线,……事实上,可以给(1,x)(1<=x<=3)填1,要么是列共线,和行对称的,方法数相同。所以,答案是2*135-9=261种。

2024-06-23 00:24:47 174

原创 Codeforces Global Round 26 E. Shuffle(树形dp)

于是,换根dp维护[u是不是叶子]+u为根时的最大独立集大小,dp[u][2]选不选+换根。这个看最后一个样例就可以了,这个样例给的很好,手玩一下就知道了。注意到提出一个点之后, 后面第二次提出的点、第三次提出的点,如果后续成为叶子,一定不相邻,所以等价于求原树的最大独立集。但是第一次提出的叶子可以和第二次提出的叶子相邻。枚举每个点是不是根即可。

2024-06-20 20:33:09 280

原创 Codeforces Global Round 26 F. Reconstruction(枚举+dp)

确定了对应个数之后,由于每个值有[-m,m]的限制,check下是否符合对应变化范围即可。对于每个可能的和,顺序做dp,dp[i][2]表示填到第i位时,最后一位是填了P还是S。也就是说,SS确定一位,PP确定一位,PS判断是否和枚举的和相等,SP确定两位。如果第i位填了S,那么由于和是枚举的,等价于确定了前i-1位的前缀和,PS相邻一个是前缀和一个是后缀和,就可以唯一确定这个序列的和。前面补一个0,字母对应P,后面补一个0,字母对应S。如果第i位填了P,等价于确定了前i位的前缀和。

2024-06-20 18:58:33 334

原创 2023 Jiangsu Collegiate Programming Contest, National Invitational of CCPC (Hunan) E. LCM Plus(容斥原理)

比如需要减去的是gcd=2,lcm=y的方案,就等价于减去gcd=1,lcm=y/2的方案。dp[i][S]表示约数里当前选了i个数,当前所有质因子的状态有没有覆盖住最高幂次,由于lcm+gcd=x,有lcm/gcd+1=x/gcd,还有lcm/gcd>=1。显然如果gcd>1,让gcd和lcm同除以gcd即可,所以可以认为gcd=1,但是,这个只能限制住lcm的限制,不能限制住gcd=1,所以容斥。用gcd=1的,减去gcd>1的,枚举大于1的具体是几,枚举gcd,gcd一定是x的因子,

2024-06-20 18:50:49 330

原创 AtCoder Beginner Contest 356 G. Freestyle(凸包+二分)

新增一个点(0,0),新增一个点(1e9+1,y),其纵坐标与最后一个点纵坐标相同。按x轴排增序,并且使得后面的y不小于前面的y,因为总可以多耗费体力达到相同的米数。只需看(ci,di)中的di,是交点处的纵坐标的几倍即可,答案即为这个倍数。显然这个封闭图形内的点都是可以用各种泳姿1s凑出来的,那么交点方向最优,实际用的仍然是交点这个向量,只是实际的含义是y相同的情况下多耗费了体力。对于询问的向量,求它与上凸壳的交点,显然用这个方向的向量是最优的。那么,两条直线还是有交点的,只是向量与水平直线的交点,

2024-06-09 20:47:46 345

原创 Codeforces Round 951 (Div. 2) F. Kostyanych‘s Theorem(思维题 交互好题)

而一直问n-1显然肯定不行,这样会导致剩下的删边越来越多,最后剩下一堆小于n-2的。还会输出一个和这个点v当前没有连边的点x,如果x有多个,也输出点号最小的x。2. 如果问出来的是n-1,n-1可以和子图内的点任意连,插入到任何地方,1. 如果问出来的是n-2,显然删掉这个点的子图还满足这个条件,递归子图。交互题,n(n

2024-06-07 12:52:14 629

原创 The 18th Northeast Collegiate Programming Contest(5/9/13)

x=3,同理,只能保留1 2 3 4 5 [3 1 2]、1 2 3 4 5 [3 2 1]和1 2 3 4 5 [2 3 1]x=2,1 2 3 4 5 [2 1]和 1 2 3 4 5 [1 2]中只能保留第一个,因为第二个和x=1重复了。记长度为x的系数是xs[x],对于长度x来说,若y

2024-06-05 12:53:19 1227

原创 ICPC2024 邀请赛西安站(7/8/13)

任意非空子图都有一个度不超过10的点=可以把度>10的点的贡献都归到这些不超过10的点上。新增一位时,往左往右拓展0的区域找到最左最右,这一段的b值对应的区间都是有贡献的。不妨和第i列完全相同,全是01011,那么再把这三列的1按列取消掉就可以了。枚举k,根据ai-i*k确定能在同一个序列里的子序列,子序列里的是不改的。剩下的局面,尽可能避免2的出现, 全是2的情况,谁先操作谁就输了,u算的时候上游已经推给过u,只需要再加上u的所有下游的贡献。先从大到小考虑ai=1的值,z是0的个数算最小的数。

2024-06-03 14:00:18 1365

原创 2024年广东省大学生程序设计竞赛暨广东省邀请赛-个人线上赛 D. 马(构造)

中国象棋规则,n*m的地图放k个马,使得任意两个马互相不能攻击。原题的spj好像有点问题,自己搬了一下造了个交洛谷过了。三个三角形数之和一定能表示所有数(打表发现的)输出一个矩形抠掉三个等腰直角三角形即可。

2024-06-03 13:34:21 235

原创 Codeforces Round 948 (Div. 2) E. Tensor(思维题-交互)

(6)否则,记las的两个父亲为f1、f2(也就是上图的点6、点7),如果能往f1后面续,就往f1后面续,否则往f2后面续。新来的点3,可以接在点4后,也可以接在点5后,也可以接在点6后,也可以接在点7后,因为在链中间的点后面续新的点,都可以看成是在交点后面续新的点,不影响两条链的性质。而此时应该是10->9->6->3->2,另一条链8->7->5->4->1。而这种情况的出现,说明前面有一个只询问了1次的点,也就是在点5下面的点4,可以发现,在点5形成Y字型,后接点4之后,新来的点3并没有续到点4上,

2024-05-29 20:10:39 953

原创 Codeforces Round 948 (Div. 2) D. XORificator(哈希)

枚举aij,即枚举一下哪列的哪个数字在答案里,这样其他行翻转的状态是唯一确定的,你可以选一行把所有01翻转,问最多可以让多少列只有一个1,然后把你翻转的行输出。哈希记录一下,并记录取得答案的aij,每次转移是o(1)的,只要哈希不冲突即可。实际为t(t

2024-05-28 13:05:38 451

原创 辽宁省实验OJ 235. Sting(manacher+trie)

扩展到不能扩展时,在trie树的叶子上打个异或标记,代表到根的这一条链都需要异或这个标记。manacher初始对半径取min的时候,先倍增当前回文串定位到树上这个深度的位置。由于长串肯定比短串后建,最后倒序往上合并异或标记即可。manacher,对回文这一半的串建个trie树,然后不断往外扩展时在trie树上扩展,辽宁省实验oj官方题解。

2024-05-27 10:42:34 276

原创 “现代汽车中国前瞻软件赛杯” 牛客周赛 Round 43

一条边选2个另一条边选2个(2+2)、2+1+1、1+1+1+1这些情况。4个点有一条边上选4个(4)、一条边选3个另一条边选一个(3+1)、3个点有2+1和1+1+1两种,2+1合法两种,1+1+1合法六种。先看下总共有4个点还是3个点,4个点交点在中间,3个点交点在端点。复杂度O(n^2logn),自己写的比较丑,补一下烟花的代码吧。其中合法的有2+2、2+1+1、1+1+1+1,分别合法两种。找到同一个vector内最小的截距和最大的截距,分别统计即可,写的比较暴力,这里补一下。

2024-05-19 23:38:15 399

原创 AtCoder Regular Contest 177 D. Earthquakes(概率 单调栈)

①3朝左倒:3右边的比3小的都往右倒了,并且把比3大的都带倒了,也就意味着3右边第一个就是比3小的,并且右边每一个比3小的都向右倒了。由于0不存在逆元,所以记录一下概率为0的块的个数,分别维护0的个数和概率乘积。②3朝右倒:同理,3左边第一个就比3小,并且左边每一个比3小的都向左倒了。第i轮全倒的概率,是这若干个其他块已经倒了 和 i所在的块在第i轮倒的积。一定是第i次地震时,i从没倒变成倒了,并且i倒完之后,所有都倒了。算完i所在的块的之后,还需要乘上其他块在第i轮都倒了的概率。

2024-05-13 02:24:28 524

原创 2024湖南理工学院程序设计竞赛(同步赛) G. 区间递减(思维题 分类讨论 ST表)

也就是,[l,p-1]区间内只保留最小值w,[p,r]区间内只保留不超过w的值,此时只有两种数字。此时[l,p-1]还有最小值w,对[l,p-1]的最小值w用(1),对[p,r]用(2)(3) 如果最小值出现在末尾,[l,r]从左往右一直递减,那么操作次数为0。(1) 考察区间最小值,如果最小值后如果有增的,那么最小值前也都得删完。(4) 如果(1)-(3)都不满足,那么一定是最小值出现在末尾,并且存在p(l<p<r)使得区间[p,r]满足(3),第二种情况,6 5 10 9 4 4,保留5 4 4。

2024-05-13 02:03:15 207

原创 Monoxer Programming Contest 2024(AtCoder Beginner Contest 345)E. Colorful Subsequence(线性dp)

dp[i][j][1]表示颜色和最大严格不同(也就是和dp[i][j][0]的颜色不同)时次大的(和,颜色)n(n<=2e5)个球在同一行,第i个球颜色是ci(ci<=n),值是vi(vi<=1e9)dp[i][j][2],其中dp[i][j][0]表示前i个删了j个后最大(和,颜色)但是仔细观察发现,实际前驱颜色只需要两种,即产生最大贡献的颜色,产生次大贡献的颜色。暴力是O(n*k*k)的,枚举当前颜色是什么,枚举上一个颜色是什么。同时需要保证转移后,次大的颜色仍然不能和最大的颜色相同。

2024-05-09 19:31:07 295

原创 2024 ICPC National Invitational Collegiate Programming Contest, Wuhan Site (7/13)

所以aiy+1的话,奇数是不能再合的,直接取走。以及i%4==0时i^(i+1)^(i+2)^(i+3)=0的结论数学归纳。那么i可以效仿这个路线,先走到i-2,再走到i,花4步去更新最大值。这里松弛一下,只用多花步数的这一种情况去更新答案,方向就是对的了,假设i-1是先走到了i-2,再走到了i,花了3步,获得了最大值。记原来的直径两端是u,v,本次加的边的远根端点是w,

2024-05-05 15:41:30 1698 6

原创 Helvetic Coding Contest 2024 online mirror (teams allowed, unrated)(13/21)

感觉这个b1-b3出的还是挺妙的一个构造,e3矩阵快速幂中规中矩吧a3括号序列树也是不错的idea。

2024-05-05 15:07:41 1201 4

原创 AtCoder Beginner Contest 352 G. Socks 3(期望线性性+分治NTT板子题)

分母需要计算取k次总的方案数,为sum*(sum-1)*...*(sum-k+1)记p(i) i >= 0为取i次后能够取出一对袜子的概率,则最终期望是。总步数的期望可以拆成第1 2 3...n步的贡献,分子需要支持取k次计算每种袜子只取出来1次的方案数。完成目标的期望数=每种未完成的状态的到达概率之和。元老群全月&starsilk&propane。对于第k次抽取袜子后游戏还没结束的概率。可以把每一步拆开来算然后加起来,每个式子都是第i步还没结束的概率。相当于有这个概率会有第i步。

2024-05-05 14:40:37 307 1

原创 2019牛客暑期多校训练营(第十场)(B、D、E、F、H、J)

B Coffee Chicken(递归)n个串的生成方式如下,第一个串S(1)="COFFEE",第二个串S(2)="CHICKEN",第n个串S(n) = S(n-2) :: S(n-1),::表示字符串的拼接给出n(n<=500),k(k<=min(|S(n)|,1e12)),要求输出第n个串,从第k个字符开始往后10个字符,如果到串的结尾也不足10个字符,...

2024-05-01 02:53:04 280 1

原创 AtCoder Beginner Contest 173 F. Intervals on Tree(计数 树的性质 贡献)

一棵树,考虑加边的过程,加一条边减少一个连通块。那么,逆向这个过程,没删一条边,就多一个连通块。连通块贡献=点的贡献-边的贡献,然后分开统计。森林:点的个数=边的个数+连通块个数。树:点的个数=边的个数+1。

2024-04-28 05:54:12 305

原创 AtCoder Beginner Contest 167 F. Bracket Sequencing(贪心 比较法 2022WF H题同款)

这个等价于a.se+b.fi>b.se+a.fi,即a.se-a.fi>b.se-b.fi。当min(a.fi,a.se+b.fi)>min(b.fi,b.se+a.fi),a在前。先选x>0 y>0的,选完之后选x<0 y>0的,先选x绝对值小的后大的,然后选x<0 y<0的,顺序不太显然,但是可以考虑比较法决定哪个在前,然后按这个排序一下就过了,其实打开min符号的话,可以发现是良序的,考虑第二个串和第三个串的顺序时,手玩发现,一个单独的串里的前缀最小值x,前缀和为y。前缀和-前缀最小值大的在前面。

2024-04-28 05:44:17 160

原创 AtCoder Regular Contest 176 C. Max Permutation(计数 分类讨论)

否则有两个点等于w,说明都可以,把其中一个填w,剩下一个当自由点。4. 从大到小考虑权值w,类似拓扑排序,把度为0的点加到队列里,初始没有被边覆盖的点是度为0的点,后续删掉max边之后且没有填值的点是度为0的点,当前度为0的点是自由点。3. 如果同一个权值w对应的边不少于2条,这些边应该有一个公共点i,否则无解,如果up[i]<w也无解,否则给这个点i赋初值w。从大到小考虑权值w的过程中,对于没有限制的,乘上当前自由点的个数,并令当前自由点数减1。检查所有权值w的边,对于当前边两个端点u,v。

2024-04-28 05:34:52 299

原创 Codeforces Round 941 (Div. 1) E. Connected Cubes(构造)

(9)新增L型条,使每种颜色(7)(8)两部分连通,至此所有颜色已完全连通。(5)对于奇数行,z轴正向多出来的这k层,每一层填充k种颜色中的一种,(6)对于偶数行,x轴正向多出来的这k层,每一层填充k种颜色中的一种,这样可以使得原来偶数行的原图里的颜色,和本次新增的奇数行的部分连通,这样可以使得原来奇数行的原图里的颜色,和本次新增的偶数行的部分连通,(7)沿z轴正向,k种颜色每种颜色分配一个平行y轴的长条,(8)沿x轴正向,k种颜色每种颜色分配一个平行y轴的长条,(4)奇数行,x轴正向伸长为n+k。

2024-04-28 05:05:17 447

原创 AtCoder Beginner Contest 351 G. Hash on Tree(树剖维护动态dp 口胡题解)

l为重链头的dfs序,r为叶子重链尾的dfs序时,这个区间节点对应的(a,b)中a的值。由于为0的值会对运算值有影响,并且儿子f值从一个0变成没有0的时候难以恢复之前的乘积,基本是对于有根树树形dp,想动态获取根节点的dp值,dp值和树上点权相关,点权带修,所以单独记录0的个数,所以变更的时候,动态记录链头点的f值为0的儿子的数量。其中,b是f值非零的轻儿子的f积,x是重儿子的f值(未知,待代入)递归到叶子的时候,由于叶子不存在重儿子,x值为0,所以链头的f值,就是当线段树区间[l,r],

2024-04-28 04:51:32 375

DynamicProgram.mp4

DynamicProgram.mp4

2023-12-10

SteinerTree.mp4

SteinerTree.mp4

2023-12-10

空空如也

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

TA关注的人

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