自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [ARC208D] Symmetric Matrix

花了六个小时终于做出了这一道超级难的构造题。

2025-10-17 15:50:19 863

原创 [ARC190E] Gaps of 1 or 2

给定一个长度为 N 的非负整数序列AA1​AN​,需要回答Q个查询。对于第i个查询,给定满足1≤Li​≤Ri​≤N的整数Li​和 $ R_i$,考虑长度为Ri​−Li​1的子序列BALi​​ARi​​对于子序列B1≤ij≤∣B∣1≤Bi​Bj​1≤j−i≤2ijBi​Bj​1求出可以执行操作的最大次数。

2025-10-03 09:18:18 623

原创 CF2118F Shifts and Swaps

给定长度为n的数组a和b,以及一个整数m。数组仅包含1到m的整数,并且两个数组都包含了1到m的所有整数。你可以对a∗2是否可以将第一个数组变换为第二个数组?∗对于一个长度为n的下标从0开始的数组p,其左循环移位后的数组q满足qi​pi1modn​,对于所有0≤in。

2025-09-30 10:43:29 594

原创 牛客多校04C :Computational Geometry Problem(p-Dyck路计数)

给你NMK,你需要统计满足条件的序列A1​A2​...ANM​的个数。

2025-09-18 21:34:53 659

原创 ICPC2025网络赛II A. Angry Birds

然后根据极角排序,如果角度相同就应该从近到远,这样后面的可以删掉前面的。n个点求完凸包以后,如果凸包有至少三个点,就用左下角的点再删除一次。首先肯定是找到左下角的点,因为这个点一定在凸包上面。这道题就是求完凸包以后用微积分推一个基础的式子。这题的重点是怎么求出有三点共线情况下的凸包。这样可以很好的处理线段的情况。

2025-09-17 14:22:22 265

原创 ICPC2024昆明站 F. Flowers(min_25筛的巧妙使用)

设fi表示i的不同质因子个数。让你求∏i2n​fimodp。

2025-09-09 15:31:01 898

原创 CCF-CSP第35次认证第五题——木板切割(启发式,线段树)

标号为1到n的木块排成一排,每钟木块有一个颜色,记它为序列1,进行k次操作。第i次操作给你xlr,你要把序列x中标号为l到r的木块拿出来,作为第i1个序列。让你求出每次操作完新产生的序列的不同颜色个数,以及颜色的段数。

2025-08-26 16:24:44 261

原创 第37次CCF计算机软件能力测试-第五题

最近要 csp 了,打算补一补以前没过的题目,于是我去做了csp37的收费标准评估,一道基础的 LCT 题。比赛的时候没过的主要原因是学校的电脑太垃圾,编译器一直出一堆莫名其妙的问题,导致我写完代码剩下 1h 没办法调试,在我自己的电脑上就没有这种问题。

2025-08-25 19:19:07 464 1

原创 牛客多校06M(广义二项式定理)

当时在比赛的时候我就直接用了多项式快速幂来做,但是后来看题解发现还可以用广义二项式定理将式子化成一个组合数。再用广义二项式定理展开得到。

2025-08-25 12:17:14 457

原创 图片上传123123

2025-08-17 16:10:40 59

原创 CF280C Game on Tree

有n个点的树,每次操作选择一个点并且把这个点所在的子树删掉,问删掉整棵树的期望操作次数。

2025-08-16 09:11:15 167

原创 牛客多校05 M-Mysterious Spacetime

数轴上有x个点,有n个事件:在时刻ti​,区间li​ri​会出现,然后在时刻ti​1消失。有m种生成物,会在满足Li​Ri​中有至少Ki​个点出现的时候生成,每种生成物生成一次。有q个询问,询问在时间tli​tri​内,满足qli​≤Li​≤Ri​≤qri​中生成时间最早的生成物的生成时间。

2025-08-12 10:34:05 791

原创 牛客多校H - Summit Down Side

定义mexa1​a2​...an​kmin​kminak∈a给你一个排列p1​p2​...pn​1≤n≤5×105,让你求出∑i1n​∑jin​mexpi​pi1​...pj​。

2025-08-08 11:51:49 943

原创 ABC417G - Binary Cat

字符串S0​0S1​1Si​Sl​Sr​0≤lri,让你输出Si​Xi​。

2025-08-03 11:05:28 612

原创 牛客多校05K题 Perfect Journey

这把牛客多校的A和K都不会(第四和第五题),但是发现B和C都很简单(虽然过的人比较少),过了5题。发现自己对FWT等多项式算法的理解还不是很够,写一个博客记录一下。

2025-07-30 08:26:25 782

原创 [ARC186A] Underclued

定义两个nn≤30阶0/1矩阵A和B是的,当且仅当二者同一行同一列和相等。如果某个矩阵的某个位置是的,当且仅当其所有的相似矩阵和它在这一位都相等。接下来有q次询问,每次问你是否存在某个矩阵,其恰好有K位是的。

2025-07-28 19:09:22 747

原创 两道基于投票悖论的构造题

最近见到了两到在竞赛图上进行构造的问题,而且发现这两道题的解法都差不多,因此打算写个博客总结以下这一类问题。

2025-07-28 14:50:03 692

原创 min_25筛学习笔记+牛客多校02E

本来没有学习这种较难的算法的想法的,因为比赛也做不到这种难度的题, 但是最近打牛客多校02,有一题要求1n中素数的个数,我以为是像莫反一样容斥,但是后面感觉不行。赛后知道是用筛来求,赛时过了一车,因此我也不得不学习这个算法了。我打算拿洛谷里面的来举例。就是给你积性函数fx⎩⎨⎧​kgx∑i0k​ai​xifx1​fx2​​x1xpcp∈primec≥1x1​x2​1​然后让你求i1∑n​f。

2025-07-19 21:49:30 867

原创 min-max容斥学习笔记

回到这一题中,因为有期望,所以这两个式子不能直接用。但因为期望实际上把全部情况加起来,因此可以直接把两边加上期望,即。在这一题中,集合就是没有被污染的行和列,而max操作就意味着要把集合行和列全部染上。个点在选出来的行和列里面,尝试计算把全部点染完的期望步数。首先,染完第一个点的概率是。最近报了航电的春季赛,在一道题目里面遇到了做法,感觉挺有意思。这两个公式还是比较容易理解的,这里只拿第一条式子进行分析。个比它小的数,那么这个元素总的贡献就是。,因此这么容斥下来就会得到最小的数。,因此类推,总的贡献就是。

2025-07-19 21:33:13 735

原创 总结近来一个月我没有做出来的基础题

你有n1≤n≤105个物品和一个容量为V1≤V≤500,每个物品三个参数hi​si​di​1≤hi​si​di​≤500,选择∑s不超过V的 物品使得式子∑h−∑d∗V−∑s最大。第一步是固定tV−∑s,然后每个物品的贡献就变成了h−d×t,然后用背包求解即可。然后总的复杂度是OnV2,我想了很久都没有想到要怎么优化。我以为优化不了,所以尝试改变式子:∑h−V∑d。

2025-07-18 15:23:48 686

原创 [ARC195E] Random Tree Distance

有一个比较常见的思路,就是把总和转换成期望值,然后把统计出来的期望值乘上情况的总数即可。的点有 1,2,3,…,u ,因此我们只需要计算出每个点成为。,有两种可能的情况发生:第一种是已经满足。,那么不会有任何的影响;现在告诉你每个点连向父亲的边的边权。在所有可能可能情况下的距离和。的值无关,因此可以预处理出来。我在做这题的时候是先分析出了。现在来讲讲出现这个概率的原因。前面的点,因为最后这一跳有。我们发现每个点深度的期望值。一直往前跳,如果跳到一个。个点可以选择,因此跳到。一棵树上每个点的父亲。

2025-07-11 11:18:17 740

原创 RUC校内OJ #1014. H. 采购账单

小T老师最近为一堆采购物资的报账而烦恼!采购N件物品,每件物品的价格为Pi​。按照财务要求,每笔报账单可以包含无数件物品,但价格总和不超过V。现在小T老师想知道,最多能报账多少金额。此外,在保证金额最多的前提下,最少分多少笔报账单。NV第二行N个正整数用空格隔开,表示每件物品的价格Pi​一行,两个正整数用空格隔开,分别表示最多金额和最少报账单数量。

2025-06-21 12:47:04 767

原创 pkucpc2025 L:Game on Tree

两个人在一棵无根树上玩游戏,每次可以删掉若干个叶子节点,不能操作的人输。

2025-05-19 15:38:00 325

原创 杭电多校10 : 1007 小塔的魔法树

比赛的时候这道题看到后没有立即想到思路,虽然不算很难,但还是比较初见杀的。后面想着如果是一个连通块,直接用在dfs序上面找不选的点就好。感觉树形dp主要的问题是不能很好的利用只有一个连通块的条件。,那么其子树就不用再去遍历,直接给。比较常见的思路是采用树形dp,用。那么就有两种方案,如果选择。

2025-05-17 10:37:15 1028

原创 航电春季赛(七)1010 网格计数

考虑每个格子的选择,观察其所处在的L字形,也就是这个格子和其上面的格子和右边的格子所组成的集合,这些格子的数都不相同,并且该格子大于其上面的,小于其右边的,有明确的排名。我们先找到满足每个L形里面所有数都不同的方法,然后再排除掉大小关系不正确的情况。的情况是合法的,即刚好满足当前格子的数大于上面,小于右边,因此总共需要乘上。,因为其所在的L形仍然保持无序,也就是每个数字本质上都是相同的,有。的格子,第一行填行号,第二行填列号。删除掉不合法的情况,对于当前格子。进行填数,产生的方案数为。

2025-04-19 16:46:20 770

原创 [gym105755] Bay Area Programming Contest 2025 K. Killer Cows

的暴力需要每次枚举子集,但实际上运输过来的时候那些奶牛怎么选都是可以的,因此我们实际上是能够一头一头的选。合法的情况下去到另外一边,另外一种就是再从对岸选一头奶牛过来(num<k)。,但是我确实没有想到。我以为是要用什么性质,但是实际上就是一个技巧。边(0表示左边,1表示右边),对岸奶牛为。头奶牛运送到另外一边,问最少要送几次。组奶牛不能在同一边,每一次最多只能将。因为实现是10s,所以我第一次用。有两种转移,第一种就是在。头奶牛运送过河,其中有。表示我已经从对岸带了。

2025-03-06 09:02:16 942

原创 ARC193总结

第四题的突破口是最左边的1和最右边的1,每次操作二者都会相互靠近,直到这两个的距离和需要达到的串的二者距离一样才停止,然后再平移到对的位置,因此只需要判断能不能匹配到,并不用考虑最小贡献,因为左边的1和右边的1都有可能进行依次操作,因此我们对四种情况都判断一次即可(准确是两个,因为可以用奇偶性排除掉不符合要求的另外两个),判断的时候考虑响铃两个1之间0的个数,因为奇偶性的影响是相同的,因此只要能匹配(即当前的0个数>=标准差相应位置的0的个数)就匹配,奇偶性不同让后面的来凑。这次ARC一共四题,做了两题。

2025-02-28 15:17:51 225

原创 CF794E Choosing Carrot

有一个序列,两人轮流取走第一个或者最后一个数,剩下一个数游戏结束。先手想最大化,后手想最小化。对于k=0,1,2,…,n-1,假设先手在游戏开始前操作k次,那么游戏结果是什么。手玩可以发现,如果是奇数,因为两人都有能力强行让最后一个数在中间三个,因此只和中间三个有关,如果中间是最大的,那么答案就是两边的最大值,否则就是中间。如果是偶数,那么就是中间两个取最大的。

2025-02-20 13:16:14 217

原创 nim游戏及其进阶 [SDOI2011] 黑白棋 [SDOI2019] 移动金币

把n拓展到更大,就会发现偶数级阶梯(现在假设地面为第0级阶梯)的石子时没有意义的,因为如果把偶数的石子移到奇数的石子能形成更好的局面,那么后手就能把这些石子再往移动一级,可以依次从第二级,第四级往下递推思考。然后想到一个比较奇怪的事情,以前学nim的时候我就一直十分不解为什么结论会和xor有关系(因为异或是一个二进制的操作),因为异或实际上是把每位相加再模二,然后就感觉可能会是模数变化(变成d+1)这样操作了肯定就不为全为0了,或者是进制变化(比如变成d+1进制之类的)。

2025-02-19 22:09:14 358

原创 [NOI2006] 最大获利

思考了很久以后发现可以假设先把所有边权选上,然后思考最多保留多少,也就是要么变成某个最小割,如果这条边想要保留就要花费选择点的费用,不然就要花费删掉这条边的费用。又思考了很久,想到了“要么就要删掉一条边,要么就要选择两个点”这个性质,然后意识到可以以点代边,也就是二分图,左边是边,从源点连。给你一个有点权和边权的图,让你找出一个子图,使得其边权和-点权和最大。第一眼感觉要用网络流来做,因为这个问题有非常复杂的性质。的边,右边是点,往汇点连。的边,然后对于每条边往。感觉是一道很难的题。

2025-02-19 13:36:07 368

原创 CF388C Fox and Card Game

桌子上有n堆牌。每张牌上都有一个正整数。Ciel可以从任何非空牌堆的顶部取出一张牌,Jiro可以从任何非空牌堆的底部取出一张牌。Ciel先取,当所有的牌堆都变空时游戏结束。他们都想最大化他所拿牌的分数(即每张牌上正整数的和)。问他们所拿牌的分数分别是多少?

2025-02-10 20:13:49 953

原创 ARC191C. A^n-1

值得一题的是,我pollard_rho最开始只检验10次,但是过不了,改成20次就可以通过。,需要用pollard_rho把素因子分解出来再检验是否正确,然后判断。这道题帮我完善了判断素数和原根的板子。应该是一个素数,因为素数的数量大概为。,让你求出一个整数对。从原根的角度想,显然。然后找这个素数的原根。是不是都不为1即可。

2025-02-06 12:03:19 887

原创 Gym - 101775L SOS

后手同理,但是先手会阻挠,把O放在中间,如果7*2=14的话有一边会因为O的阻碍形成不了,16的话就没问题。先手想赢肯定是要构造出S_ _S,而且要尽早,所以应该S放中间,然后肯定有一边能够形成,所以是7。两个人在一个1*N的网格上填字母S或者O,谁先形成SOS就算赢,让你判断谁会赢或者平局。根据奇偶性,如果形成这样的情况,那么先手在奇数可能赢,后手在偶数可能赢。手玩一下感觉很奇怪,因为不知道该怎么赢,所以去最后为什么会有人输。后面发现是形成S_ _S这样的情况走一步一定会输。

2025-02-04 17:46:16 272

原创 2023CCPC-Final A. Add One 2

然后求贡献,我们先假设从x开始只能增加,不能减少,那么最好的方法肯定就是从左往右遇到比自己更高的就增加到这个高度(初始高度为。想了一个上午,主要是突破口不好找,找到突破口以后很快就能出来。这些可以减少的位置都是固定的,因此可以先处理出来然后再枚举。要考虑若干个前缀和若干个后缀能够形成的序列形态。个位置减少,使得减少的总量最多,很明显对于不同的。然后发现只要减少1是需要固定的(也就是固定。个后缀,那么这个序列从左往右就是从。),增加1完全可以看情况来决定。,现在让你用最小的代价使得。

2025-02-04 13:04:00 959

原创 CF1098F Ж-function

可以把贡献拆成两部分,第一部分是求原串中的LCP之和,显然这样有一些超过。第二部分就在前一题的基础上多进行一些对长度的分类讨论就行。第一部分先用SA,然后正着扫反着扫用分块维护。,而这些都是border,然后就用。的方法来修正这一部分的贡献即可。和前一道题一样,用了根号做法。

2025-01-29 23:12:59 888

原创 [BJWC2018] Border 的四种求法

循环节能够延申到的长度, 然后找到当前与之对应的位置判断是否合法(这里比较抽象,稍微思考即可理解),然后把这些位置全部跳过即可。整整想了三天,一开始想用数据结构但是想了很久也不知道怎么维护,然后从border的性质入手想出了一个。,这样就不能暴力求解了。出现的每个位置,然后判断每个位置能不能成为 border。的循环节能够延申到的最长长度。类似的字符串,那么出现的位置就会是。下一个出现的位置然后暴力求解即可。,那么其每次出现的间隔至少为。,那么其出现的次数不会很多。,那么循环节的长度为。

2025-01-25 21:13:58 931

原创 P5161 WD与数列

如果认为两个数列是匹配的,当且仅当它们长度相等并且给其中一个数列的每一个数加上一个整数能使得二者相等。先做差分,就变成了判断是否相等了。不过要先把长度为1的情况统计,也就是让。的贡献,然后枚举少的一边求,发现可以用线段树合并求解,时间复杂度。现在给你一个数列,让你求有多少对不相交的子串是匹配的。数组建笛卡尔树,然后进行分治。

2025-01-22 15:46:02 488

原创 [八省联考 2018] 制胡窜

值得一题的是,我的代码在洛谷一遍就过了,但是在loj拿了0分,测试一下发现本地是对的,但是loj评测机的环境就是错的,我尝试交打印调试信息的代码,结果发现加了几个cout输出就正确了,非常奇怪。相等的子串,并且两两相交部分不超过1,那么一定是任意整数对都满足条件,我们把这种情况特判一下,剩下的情况就有。对应的点为 p,考虑 p 的 endpos 集合,假设其大小为 m。,只要保证选择的空隙都在最左边的出现位置和最右边的出现位置之间即可。为不与最左边出现位置相交的出现位置的 endpos 集合,然后枚举。

2025-01-20 22:31:59 450

原创 CF700E Cool Slogans

因此我们只需实现两个功能:(1)查找某一段下一个出现的位置,可以用sam和线段树合并处理;(2)求等差数列的长度,也就是新加的那一段重复出现了多少次,可以用哈希+二分来求。就是kmp一连串的border,而kmp的border有一个常用的性质:会形成log段等差数列。我看题解里没有人用kmp里border的性质来做,就来写一发。的子串,使得后一个在前一个中至少出现两次(可以有重叠部分)。以此类推,直到找不到位置。然后统计出现次数,对每个。手玩一下,发现只需要先固定一个起点。求完以后取最大值即可。

2025-01-20 11:54:42 612

原创 CF1063F String Journey

这道题给我了一个重要的启发:就是一下子理不清楚思路的时候可以打一个暴力,然后再思考怎么优化这个暴力。给你一个字符串,让你从中提取处最多的连续子串,使得这些连续子串在顺序保持不变的情况下满足后一个是前一个的真子串(必须非空)。也有单调性,所以可以用倍增来找到点,点内开个vector存段,在点内寻找的时候用二分,就能做到时间空间都是。1.后一个的长度是前一个的长度+1,即在后一个串的前面或者后面多加上一个字母,接下来我们强制这个条件满足。先把字符串反转,那么条件就变成了前一个是后一个的子串了。

2025-01-19 12:56:14 547

空空如也

空空如也

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

TA关注的人

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