- 博客(223)
- 收藏
- 关注
原创 计数题 #4 - 难题番外B 题解
给定n个元素的集合S12⋯n和整数 $ k$,现在要从S中选出若干子集AijA⊆S1≤j≤i≤k排成下面所示边长为k的三角形(因此总共选出了21kk1个子集)。A11A21A31⋮Ak1A22A32⋮Ak2A33⋮Ak3⋱⋯Akk此外,JYY 对选出的子集之间还有额外的要求:选出的这些子集必须满足Aij⊆。
2026-01-03 10:03:16
685
原创 GJOI 11.20 题解
然后前者我赛时脑抽了,一直想要对每条边拓展小于其的边,但是显然会有冲突,是不好处理的。快结束是才惊醒可以对每个点按照点权排序,然后在树上依次加点,考虑暴搜的瓶颈,就是前面的位跑了太多的非法解,于是考虑倒着预处理后面段的字典序最大值,提早终止非法情况。的最大点权减去路径长度。为什么这样的构造是正确的?,不能有相同的数相邻。,如果有尝试翻转的,如果翻转了也不行就无解。,后面能得到的最大权值。的空隙,能插入的地方尽可能地多了。其中后者是经典的树形 dp,设。的路径数,可以边合并边计算。到其它点的路径之和,以。
2025-11-28 10:58:45
928
原创 一类排列 dp 题目
首先我们设不了前面放了哪些数,前面放了后面就放不了影响大小关系分布,有后效性呢。,前面要填比当前排名大的数。于是有一种经典的思路:我们设当前放的数,是。大是插入到别人中间的,所以。洛谷 P2467 请自行修改。交替分布,正反各来一遍。的第多少大构成一段排列。前缀和优化转移可以做到。
2025-11-28 09:36:25
857
原创 (模拟、贪心)洛谷 P7913 CSPS-2019 廊桥分配 / P7915 回文 题解
贪心搭配模拟食用,让贪心题变得更具编码难度了,最近这种题出现次数也不少。还得要细心啊。
2025-11-27 19:16:30
1004
原创 重链剖分简写
前阵子看到树剖求 lca 的,然后应急学会了树剖。相对于以前学的长链剖分,改为重链剖分。修改 / 查询树上x→y路径,就两个一起向上跳链头topx,修改dfntopx∼dfnx的信息——这里把整棵树按照重链优先遍历的 dfn 序搞下来拍平,然后就是线段树的操作了。重链剖分和线段树拼起来,就是以前令我闻风丧胆的——树剖线段树。双 dfs 维护重儿子big和链头top查询x→y。
2025-11-26 22:04:48
945
原创 (MST 优化)P5687 [CSP-S 2019 江西] 网格图
但是这是 MST,所以连起来会成环的边要断掉。普通 kruskal 要先对所有边权排序,假若对。条边,同步更新当前权值总和以及连边总数。编号,每个点可用它所在的行编号。请你求出这个网格图的最小生成树。所连接的行,理论上这行的。看图分析,增加一行要连接。
2025-11-23 20:52:14
342
原创 一类判断包含颜色整体的题目
长度为n的颜色序列c,称区间lr合法,当且仅当不存在一种颜色x在区间内外均出现过。遇到这种题目,发现内外有冲突可以用异或相消的性质,又想到,考虑一个随机赋权。对于某种颜色x的所有坐标posxi,我们给除了最后一个之外的其他坐标都赋不同的权值,最后一个赋其他坐标的权值异或和,这样只有一个区间内选到所有颜色x的坐标,异或和才为0。
2025-11-22 22:01:43
712
原创 (dp 优化)洛谷 P14460 寻雾启示 题解
越大这个过程就越长。于是考虑维护一个最优上一转移点(上一阶段终点),可能这段时间不足以刷新出一块石头,于是不能粗暴地加。发现从起点开始能走多远,取决于在。出发都只拿到达现阶段要到达的终点所需的铁。处拿了多少铁,为了不浪费时间,每次回到。,建议前往原题阅读题面、样例及其解释。前面的点了,因为选前面的点就会使。考虑转移,考虑前面某个阶段终点为。,然后就拿到了 90pts。必然是单调递增的,而对于。用完了所有的铁,现在想。不一定是从起点直接走到。的情况已经涵盖在初始化。
2025-11-22 20:31:31
793
1
原创 GJOI 11.14 题解
目标数组bi,满足ai2bibi1an2bnb1。因为保证n是奇数,所以容易找出b1,后面就随便做。
2025-11-20 16:29:03
1050
原创 (博弈论)一类博弈相关的 dp
有的博弈 dp 就是直接贪心。但有的就是要倒序考虑。第一次接触到倒序从终态倒推考虑的是。然后在模拟赛有碰到了这道,原来博弈 dp 都是要从终态往起始态考虑的。为什么?max−min。
2025-11-20 15:28:20
1074
原创 (博弈论)AT_agc002_e Candy Piles / 洛谷 P10398 Remove and Decrease Game 题解
桌子上有N堆糖果。每堆糖果有ai颗糖果。Snuke 和 Ciel 正在玩游戏。他们轮流走。Snuke 先走。吃了桌上最后一块糖的玩家输掉了比赛。确定如果两个玩家都以最佳方式玩游戏,哪个玩家会赢。
2025-11-19 14:43:28
966
原创 GJOI 11.10 题解
从前往后扫s,记录siti的位置上是A还是BB需要变成AA需要变成B如果遇到一个B就先记录下来;如果遇到一个A,就看前面有没有记录过(剩余)B,如果有就可以配成一对,操作一次A B。于是最后会剩下一些A在前面和一些B在后面,那么只要最后一个(要被替换的)B后面还有siti的B,和第一个A前面还有A,就是有解的。
2025-11-13 22:14:41
1134
原创 一类单位转移的状压 dp
经典状态压缩 dp,看到n特别小就可以考虑二进制状态相关算法了。除了状态之间用位运算进行合并(我们已经做过许多类似的题目),减去某一位,实现状态之间的转移算是很常用的 trick 了。这算是我学到的第一个状压 dp 方法了,。
2025-11-13 09:33:16
977
原创 GJOI 11.7 题解
注意看题,给的是每辆车的进站和出站位次lr。对于两辆车ij,如果liljrirj,那么ij可以停在同一股道。否则不可以。于是先对l这维排序,如果遇到ij但rirj就不得不分开。本质上是一个偏序 dp。设fi表示枚举到列车ifijirjrimaxfj1树状数组维护即可。
2025-11-12 20:35:14
945
原创 GJOI 11.6 题解
根据裴蜀定理,记ggcdab,不管经过多少次操作,所有数modg的余数不变,且所有数都能表示为kigx,其中所有数的kig相同、x∈0g。于是考虑在余数操作。对余数pi排序,初始就是pn−p1,即最大值减最小值。更改的话可以尝试让每个pi成为最大值而pi1成为最小值,即把p1∼i全部g,每次ans←pig−pi1。
2025-11-11 21:31:46
1025
原创 整体二分 系列
一些题目里面,询问是可以通过二分答案求的,Onlogn。但是询问有很多,一个一个处理需要Onmlogn。于是想要把所有询问放在一起,于是就有了整体二分。二分答案的题目一般是问,使用元素1∼x能够满足条件的最小的x。考虑一般的二分答案,对于答案值域lr,我们使用l∼mid的元素,如果满足一个询问的,那么它的答案≤mid,否则mid。拓展到多个。若满足多个询问,那么这些询问的答案≤mid,其它的mid。考虑分治,把≤mid。
2025-11-09 09:33:38
919
原创 根号trick 系列
和分块一样“暴力”但优雅地工具。常用于对因数、除数等分大小,分开处理,使得复杂度在On根号平衡。。具体地,遇到形如xk×dxk×d≤n的条件,比如每次往后跳步长d跳k步或者跳到n停下来,求amoddx的a的极值等,复杂度为OdV,就可以分大步长和小步长了。
2025-11-08 15:13:02
1068
原创 (根号分治)nfls #1982 倍数点更新 题解
我们发现修改比较离散,似乎没法线段树,求区间和前缀和也不好搞,考虑在树状数组上。而这样打 tag 只用记录小因数,枚举因数也只需要。看到倍数,可以分类去跳:将。开始,所有元素初值为。内的因数——考虑一个。
2025-11-08 14:57:02
387
原创 GJOI 10.29/10.30 题解
左右只会用一次,上下只会用一次,分别考虑横竖的最大间隔。每次可以把最右边的,通过右移翻到最左边,和次右取最长间隔;也可以左移把最左边的,通过左移翻到最右边,和次左取最长间隔。上下同理。模拟即可。取最小步数相加,最后横竖最大间隔相乘。
2025-11-08 08:09:42
1354
原创 GJOI 10.28 题解
问题转化为,用3个数组成和为s,要求每个数≤n,求方案数。这个问题可以容斥。首先容易用插板法算出没有限制的组合有2s−1,之所以会多出情况是因为有的三元组中出现了n的数。对于这类超限限制可以直接计算s−n的和的方案数,然后随便3个数中选一个n使其超限,就能还原出超限的三元组。即−132s−n−1,钦定1个数大于n的方案数。但是又出现了一个问题:对于一个有两个超限的三元组,显然有2种和为s−n的三元组可以把它还原,就减多了。例如s9。
2025-11-05 21:12:38
709
原创 (dp)AT 一些区间函数 dp
给定一些奇怪的区间函数,然后要求满足这个区间函数的区间对数和。这种一般都是 dp,做每个下标作为有效右端点新增的贡献。
2025-11-04 22:14:10
772
原创 CSP-S2 2025 总结
兹认为这一场没有考很多的算法,大部分都是思维。真正赛时还是状态一般了。主要是有点急,也很慌。赛时 T1 认为是反悔贪心,然后写了一个大模拟一般的、用了三个堆的贪心,却死活过不了大样例 4 的 #2 #3 组询问,彼时已经接近 100 min。于是花大概 10 min 写了 70pts 暴力就忍痛看其它题目了。自认为是很不应该的,因为顺着暴力打就能发现端倪,但是为了总体得分不得不放掉——不过事实证明这个决策是正确的,不然后面的题目就很难拿分了。然后 T2 感觉暴力比较好打,我是放到后面才打的。
2025-11-03 15:41:55
841
原创 (单调队列、ST 表)洛谷 P2216 HAOI2007 理想的正方形 / P2219 HAOI2007 修筑绿化带
怎么能同一年省选出一种类型的题目呢……
2025-11-03 14:53:34
1139
原创 GJOI 10.25 题解
同级的人去同级的车位是没有贡献的。所以贪心地,把级别为i的用户分配到1∼i−1级的车位去。于是考虑维护有什么小级别的车位剩余。最后把所有级别跑一遍,尽量分配到当前车位,实在不行分配到后面,计算负贡献。
2025-11-03 11:11:25
1070
原创 GJOI 10.24 题解
1≤N≤1041\le N\le 10^41≤N≤104,1≤T≤1061\le T\le 10^61≤T≤106,∀di∈[1,105]\forall d_i\in[1,10^5]∀di∈[1,105]。用堆维护结束时间即可。每次取出最小堆顶后,将下一加入跳舞时间加上堆顶就是结束时间了。2.洛谷 P4137 Rmq Problem / mex题意静态求区间 mex\text{mex}mex。数组长度、查询次数 n,m≤2×105n,m\le 2\times 10^5n,m≤2×105。可持久化线段
2025-10-30 18:36:41
897
原创 (根号分治、sosdp)洛谷 P10408 Apple / P7842 探险者笔记 III 题解
原因是打 GJOI 10.24(模拟赛 27)时,做到了第二题,讲题的大佬说,同校的大佬曾经出的模拟赛就是一道模板题目。首先学会找s原理是每次把末位的1砍掉,如果是0也有退位。还有限定了b原理:给s的每一位0填入1,这相当于关于全集取反得到补集,然后枚举补集的子集,或上s得到超集。也可以用下面的写法,和求子集的方法同理。
2025-10-30 16:34:23
1070
原创 (数学)P6170 USACO16FEB Circular Barn 题解
点的奶牛有多少,同时也等价于这些奶牛中,要被安置至多要走多少步,这个理解可以理解为,从前面过来的奶牛,留下一头在。头奶牛,他的目标是让每个房间恰好有一头奶牛。然而不幸的是,现在奶牛们随意呆在某个房间里,第。作为当代建筑的爱好者,Farmer John 建造了一个圆形新谷仓,谷仓内部。你需要帮 FJ 算出所有奶牛消耗的能量和最小值是多少。FJ 决定采用这样的方法来解决这个问题:让某些奶牛。,每个房间都有通往与其相邻的左右房间的门。,然后其它奶牛继续被暴力推走。各有一头奶牛,想要使得。扇门,他消耗的能量为。
2025-10-28 20:44:56
307
原创 (计数)洛谷 P14254 分割 题解
其实结论可以通过样例解释观察得到。难点在于分类讨论可能比较多,要考虑去重和特殊情况。又因为所选深度不降,于是所选深度全部相同。前面某个点,延伸一条链下来,否则无法保证上界。,建议前往原题阅读题面、样例及其解释。考虑预处理每一层的点集。从大到小排序,选定一个点作为。的交集,同时也是子集。里面选至少一个当下界,否则。的链,并且会向下延伸到大于。,那么交集所代表的深度取值。,一个限定下界,即必须再在。相当于对同层点集,按照。后就只能选前面的点作为。的链,延伸到最深处恰为。处,导致交集下界突破。
2025-10-28 20:06:48
1045
原创 GJOI 10.23 题解
给定一个长度为n的数列a1a2⋯an,每次可以选择一个区间lr,使这个区间内的数都加1或者都减1。请问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。
2025-10-27 21:01:25
730
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅