做题记录

写在前面:

感觉我有个毛病,写一段时间的题就会不自觉地减缓效率,有点摆烂(尤其晚上),写点总结吧,利用一下时间并养成好的习惯


2025/07/16

今天如几天常在楼下听 stntn 学长讲课,简单附属一下内容:

  • kruskal重构树:

挺简单的一个trick,对于一个关于树上特定边权的问题,可以先搞一遍最小生成树,排序从大到小的边权,通过并查集搞出一棵搜索树
这个搜索树性质是对于任意重构树叶子两点,原树上该两点的简单路径中边权最大值就是重构树的LCA的值
P1967 [NOIP 2013 提高组] 货车运输
裸题,搞出重构树找LCA即可

P7834 [ONTAK2010] Peaks 加强版
重构树向上找不超过x的LCA,在该LCA的子树上搞主席树求区间kth,码量挺大的,还没调出来(

P4768 [NOI2018] 归程
在重构树定值LCA的子树结点上移动不需要花费,优化了时间

  • 分层图最短路

挺版的,看到不好建边的时候,把后面的图拷贝一份,再将该点连向这张图,主要是让最短路好跑一些
P4568 [JLOI2011] 飞行路线
:看到免费的航线不好转移,考虑分层图,最多做10次免费飞机,把原图拷贝k次,每个点u有向下一层v的免费边,也有向这一层v的正常边,跑最短路即可
P3831 [SHOI2012] 回家的路
网格图上只有特定点可以转向,考虑将网格变成只有横着走与只有竖着走两张图,特定点可从横向图转到竖向图/竖向图转到横向图,起点终点最短路,注意空间,所以要缩点,只存有用的点

  • 2-SAT 问题

挺简单的,毕竟花时间自习过,对于各种\(0/1\)变量的共存问题,对每个必要状态连边,作tarjan找环,如果一点的两个状态在同一环上(又要存在,又要不存在),即可判断无解
P4782 【模板】2-SAT
真的纯板子,就按照上方说法写就完了
CF1697F Too Many Constraints
每个点拆成多个bool变量,然后建边即可,重要的是要看出来要用2-SAT 解决

  • 建图优化

讲了个前缀和优化建图,没听大明白,但网上好像没有讲这个的,感觉不是很重要,先搁置吧,挂个例题P6378 [PA 2010] Riddle
还有个线段树优化建图,把板子敲了,挺版的(CF786B Legacy

  • 总结

题见少了,调代码跳少了,一道蓝题卡了半个下午,发现只是小错误(

2025/07/17

怎么上午就开始总结了(汗
如常上午 stntn 讲课,接着挂上听课记录吧

  • 分块

这方面之前学过,不再从头讲述了,可以去看之前的分块笔记Link

  • 势能分析

dottle刚讲过,就是一种分析复杂度的方法,分析完了就可以放心去写暴力了
搭配那几道分块食用
简单来说,就是把复杂度拆成两个部分,一个是原序列做完产生的复杂,一个是新加入玩意的复杂度
加起来即可

  • 操作分块

这个trick有意思,先挂题:CF342E Xenia and Tree
可以发现,对于加点操作与询问操作,有两种最基础的做法,一种是直接跑遍历,查询复杂度 \(O(n)\) 修改复杂度 \(O(1)\)
第二种是预处理,加点后进行全图遍历,为每个结点赋答案值,修改复杂度 $ O(n) $ , 查询复杂度 $ O(1) $,有点根号分治的意思了
补充一下,树上任意两点的距离 \(dis_{u,v}\) 可以用公式:\(dis_{u,v}=deep_u+deep_v-2*deep_{LCA_{u,v}}\),查询复杂度是\(O(log_n)\)
那么就可以每 $ \sqrt{n} $ 次操作后重构树上点答案值复杂为 \(O(n\sqrt{n})\),对根号操作内次的查询只让初值与根号前方的点比较复杂度\(O(n\sqrt{n} log_n)\)
总的复杂度就是\(O(nlog_n+n\sqrt{n}+n\sqrt{n}log_n)\),LCA预处理+做法1+做法2

  • 根号分治,根号平衡

也是学过的玩意,挂个链接笔记吧Link

  • 总结

感觉今天最重要的是复杂度的分析,当一道题的复杂度分析对了,再暴力的写法也会是是最正确的AC

2025/07/18

省流: 抄PPTing.
如常,楼下,stntn 后面忘了

  • 博弈论入门&概念

简单来说,就是在两个人都不会犯错误的情况下,探索某一人是必输/必赢

  • 简单&博弈

1 .Bash博弈
\(n\) 个石头,\(A,B\)轮流拿\(k \in[1.m]\) 个石头,拿到最后一块石头的是获胜者
solution:当n是m+1的倍数时,先手必败
2 .
image
考虑当集合不为空时先手必胜---把1拿了
3 .
image
题面:CF1874A Jellyfish and Game
考虑只会一直交换全局amx与全局min,稍微约束判断即可
4 .
image
题面:CF1860C Game on Permutation
博弈论递推,求最长上升子序列
5 .
image
题面:CF1749C Number Game
模拟,随着i的变大,会有一些数自己出局,A一定选最大的,B一定尽早淘汰最小的
6. \(Nim\)游戏:异或和不为时先手必胜---自己百度去

  • 博弈图和状态

将每个状态视为结点,连边建图,一般是\(DAG\)(有向无环图)
状态:必胜,必败....看名字就可以了

  • SG函数

笑,上次写这个忘了保存,不然我就直接挂链接了(
当当前结点\(u\)没有后继结点(必败状态),\(SG_u=0\)
否则\(SG_u=mex( \in_{Son_u}SG_v)\)
说人话就是所有儿子\(SG\)值组成的集合里取\(mex\)
\(mex\)指集合中没有出现的最小的非负整数
起点\(S\)\(SG\)函数值\(SG_s\)就是这个游戏的\(SG函数值\)
组合游戏的\(SG\)函数值就是所有子游戏的\(SG\)函数值的异或和
P3185 [HNOI2007] 分裂游戏
后面忘了,写珂朵莉去了(

2025/07/19

今天考试,考试总结见:一点总结(

2025/07/20~2025/07/27

放一周的假

2025/07/27~2025/08/17

中山集训,内部消息,不透露

2025/08/21

今天是贪心专题,首先看了看dottle佬的ppt
所谓贪心其实就是证明最重要

  1. P8082 [COCI 2011/2012 #4] KEKS
    从前往后去删除,保留剩余k位中最大的一个
    贪心正确性显然
  2. P8898 [USACO22DEC] Feeding the Cows B
    可以发现每头牛吃的屮离他越远越好,那么记录最右侧的屮位置,当需要更新的时候就从该点往后找最远的位置填,由于记录的最右位置只加不减,最多遍历\(O(n)\)次,可以通过该题,正确性显然
  3. P6243 [USACO06OPEN] The Milk Queue G
    this
    贪心式子可以用数学归纳法得出/证明
  4. P2255 [USACO14JAN] Recording the Moolympics S
    考虑如果只有一个录音机时怎么做:
    将所有活动结束时间排序,然后从初始结点开始能选就选
    两个录音机怎么做?
    将活动结束时间进行排序,然后遍历每个,用空闲的那个能选就选
  5. P2945 [USACO09MAR] Sand Castle S
    考虑将a与b分别从高到低排序,然后直接每对算贡献
  6. P8896 「DPOI-1」道路规划
    考虑拓扑,竞赛图的DAG,问题转换成在序列上把其变成在[L,R]之间的数
  7. CF525D Arthur and Walls
    贪心染色,dfs一个∗点要被替换,当且仅当有一个包含它的2×2的矩阵中除它之外全是.点,向八个方向同时扩展
  8. CF3D Least Cost Bracket Sequence
    先把字符串中的问号都换成右括号,如果左括号比右括号多,则在前面所有原来问号上找左右差值最小的换掉
  9. CF1208G Polygons
    考虑什么时候加入 \(k\) 边形是最优的?
    eg:如果我要加入6边形,那么我一定会先加入3边形,因为三边型的顶点全部被六边形覆盖着
    可以推广:如果我要加入 \(k\) 边形,那么 \(k\) 边形前所有与\(k\)有公因数的 \(p\) 边形都会与 \(k\) 边形有相同的交点
    所有每次添加 \(k\) 边形时会增加在 \(k\) 前面与 \(k\) 互质的数个数个新点
    也就是\(\phi(k)\) !
    然后就很显然了,欧拉函数是积性函数,当\(gcd(a,b)=1\)\(\phi(a*b)=\phi(a)*\phi(b)\),直接用筛法将质数与欧拉数一起筛出即可
    最后将 3~n 的所有欧拉排序,选 k 个最小的,加上初始三角形的2即为答案

2025/08/22

贪官模拟器,今天接着贪

  1. CF1085E Vasya and Templates
    考虑分讨,但是我没大懂,先跳过吧
  2. P4765 [CERC2014] The Imp
    看到物品数量为 \(10^5\) 但最多只会有 \(k<=10\) 个物品被变成灰,考虑dp
    \(dp_{i,j}\) 表示买到前 \(i\) 个物品时用了 \(j\) 次魔法的最大收益,很容易推出转移方程:
    \(dp_{i,0}=max(dp_{i-1,0} , a[i].val-a[i].cost)\) 先手表示选与不选
    \(dp_{i,j}=max(dp_{i-1,j} , min(dp_{i-1,j-1}-a[i].cost,a[i].val-a[i].cost))\)
    max表示我的最优状态,min表示恶魔干扰的最劣状态
    转移顺序?价值从大到小!
    考虑如果从小到大去选,即使不使用魔法你也无法最大化收益,所以直接从大到小去选!
  3. CF1685C Bring Balance
    考虑一个结论:任何括号数相同的括号序列在翻转两次以内一定会完成匹配
    证明:
    将左括号看成+1,右括号看成-1,就发现原先的括号序列变成了一条折线图,当折线上到x轴以下(小于零)才是不正确的
    \(a[i]\)为折线的前缀和数组,记录x为最大值,翻转 \([1,x],[x,n*2]\) 一定可以获得合法序列
    考虑怎么只翻转一次:
    令 l,r 是最前和最后一个前缀和小于 0 的位置,那么最终翻转的区间 \([L,R]\) 一定要满足 \(L≤l,R>r\) 贪心地选择 \(L≤l,R>r\)\(a_{L-1},a_R\)最大的 \([L,R]\) 检验即可
  4. CF436E Cardboard Box
    记录 \(i\) 关拿一颗星的代价为 \(a_i\) , 拿两颗星的代价为 \(b_i\)
    考虑如何从有 \(i\) 颗星星推到第 \(i+1\) 颗星星,有四种情况:
  • 新选一个获取一颗星星的关 \(i\) ,代价为 \(a_i\)
  • 将一个原来只有一颗星的关卡`\(i\) 变成两颗星 , 代价为 \(b_i-a_i\)
  • 将一个原来只有一颗星的关卡 \(i\) 反悔一颗星 , 从新的关卡 \(j\) 拿两颗星 , 代价为 \(b_j-a_i\)
  • 将一个原来有两颗星的关卡 \(i\) 反悔成只有一颗星 , 从新的关卡 \(j\) 拿两颗星 , 代价为 \((a_i-b_i)+b_j\)
    那么我们维护五个优先队列,每次取队首更新即可
  1. CF1348F Phoenix and Memory
    懒得写了:
    image

2025/08/23

今天上午考试,第二道题懂了,没切出来

  1. A. 剪切字符串 (lcp)
    诈骗题,考虑答案上界,其实第一串选 \(n-2\),第二串选\(1\),第三串选\(1\)
    \(lcp(a,b)+lcp(a,c)+lcp(b,c)\)最长也只能是\(3\)
    当第二串与第一串有一个不同,那么答案上界就变成\(1\)了,当第一串第二串第三串都有一个不同,答案上界就是0了,分讨即可
  2. B. 深度优先搜索树(dfs)
    考虑什么时候可以有答案:当返祖边出现时,答案为\(2^k\),\(k\)是返祖边的数量
  3. C. 巡逻网络(net)
    状压||随机化,还没调出来,因为最多只选四个点嘛
  4. D. 彩色括号(witch)
    这个是真不会
  5. 杂题P4679[ZJOI2011] 道馆之战
    恶心!调了3hours了,调不出来,整体上是树剖+线段树,不过要有维护信息有点多而已()

2025/08/24

晚上ABC,和明天混在一起总结

2025/08/25

贪贪贪,嘻嘻嘻

  1. P1650 田忌赛马
    考虑跑两遍,第一遍统计可以获胜的最大值,第二遍找平局
    将齐王和田忌的🐎按照从小到大排序,从小到大枚举田忌的🐎,从大到小枚举齐王的🐎,当田忌的🐎比齐王的🐎快,贪心选择
  2. P5749 [IOI 2019] 排列鞋子
    考虑每次移动都是从右边最近的一个过来,那么开n给vector,存每种鞋子的位置,从右往左,树状数组跳过中间的鞋子
  3. P4823 [TJOI2013] 拯救小矮人
    按照逃生高度排序,贪心dp
  4. P6927 [ICPC 2016 WF] Swap Space
    考虑分成两个数组,第一个存 \(a<=b\) 的 第二个存 \(a>b\) 的,分别按a从小到大,b从大到小排序,最后模拟即可
    贪心正确性显然
  5. AT_agc023_f [AGC023F] 01 on Tree
    考虑贪心,对于所有权值为0的点,当他的父节点全部拍下来了,那么把它马上拍下来就是最优的
    所以可以考虑将子节点和父节点合并,考虑如何维护合并后结点的权值?
    现在我有两个个结点a,b,那么当a放在前面时会产生\(a_{cnt1}*b_{cnt0}\)对逆序对,\(cnt_{1/0}\)表示该节点下方权值为\(1/0\)的结点个数,当b放在前面时会产生\(b_{cnt1}*a_{cnt0}\)对逆序对
    所以当a比b更优时,即产生的逆序对最少,有\(a_{cnt1}*b_{cnt0}<a_{cnt0}*b_{cnt1}\),即以此优先队列排序即可
    code:
  6. 好消息,调出了道馆之战!

2025/08/26

最后的一天贪心了(

  1. P4409 [ZJOI2006] 皇帝的烦恼
    每个勋章最多给\(n/2\)个将军,那么可以得出式子\(ans=\dfrac{\sum_{i=1}^{n}a_i}{\lfloor\frac{n}{2}\rfloor}\)
    一共需要的勋章数/每种勋章最多可以给多少人
  2. P2123 皇后游戏
    考虑怎么排律是最优的
    image
  3. AT_arc076_b [ABC065D] Built?
    将x与y分别排序,给相邻两项分别连边,最后跑最小生成树即可,正确性显然

2025/08/27

晚上神秘CF,明天补吧

2025/08/28

进入了构造板块,首先观摩了 \(dottle\) 佬的ppt,知道了一个神秘构造称呼:人类智慧

  1. CF1512D Corrupted Array
    考虑什么时候可以由a变成b
    记录一个最大值maxx,一个次大值se_max
    要么是a中所有数加起来等于se_max,maxx是随机数
    要么其他数加起来等于maxx,用maxx-sum和等于的那个数是随机数,分讨即可
  2. AT_abc185_f [ABC185F] Range Xor Query
    为什么在构造题单里???线段树裸题哇(
  3. P5595 【XR-4】歌唱比赛
    首先考虑什么时候无解:形如ZZZXY,就是Z只能出现在末尾一段连续段中
    然后做完了,X:0 9 Y:9 0 Z: 1 1
  4. P3514 [POI 2011] LIZ-Lollipop
    考虑一个结论:当X可以得到,那么X-2也可以得到
    证明:
  • 当x两端都为1时,同时删去两边,满足x-2
  • 当x一端为二时,删去该端,满足x-2
    那么很显然了,通过找到最大奇数与最大偶数,然后\(1e6\)的范围L,R桶处理即可
  1. P3640 [APIO2013] 出题人
    造数据,不嘻嘻,考虑不同最短路算法的卡掉,分析算法结构

2025/08/29

构构造造

  1. AT_agc029_c [AGC029C] Lexicographic constraints
    考虑二分答案,如何check?
    模拟进位即可,注意从大到小的答案为一的特判即可
  2. AT_agc035_c [AGC035C] Skolem XOR Tree
    分奇偶讨论,考虑两种路径
  • x->x+1->1->x' (x%2==0)
  • x->x-1->1->x' (x%2==1)

2025/08/30

考试,放假

2025/08/31

常规收假

2025/09/01

补了MZOJ的考试题与ABC的题,abc421f是唐题,链表思想,记录next数组即可

2025/09/02

考虑杂题,四道题一下午只做出来两道(

  1. P3423 [POI 2005] BAN-Bank Notes
    完蛋了,先没有看出来背包,然后看出来了不会写,花了0.5h+重新学习01背包(
    首先多重背包求最小方案,采用二进制优化(其实就是拆位)
    然后考虑如何输出方案,可以发现,dp时记录一下选择,dfs就可以了
  2. P4563 [JXOI2018] 守卫
    你被骗了,不要像我一样去搞斜率与凸包,\(O(n^3)\) 滚出(
    考虑每个区间 \([L,R]\) 一定会在 \(R\) 位置放一个人,那么我们以 \(R\) 为基础(一定要选), \(O(n)\) 枚举 \(L\)
    那么枚举的复杂度为 \(O(n^2)\) , 考虑区间dp合出答案
    对于每个枚举的 \(R\) ,在枚举它的 \(L\) 时记录一个可以看到的最左边的端点 \(P\) 那么 \(P\) 之前的就一定是之前访问过的区间,
    那么记区间 \([a,b]\) 的最小放人值为\(dp_{a,b}\)\(dp_{a,a}=1\)
    \(dp_{L,R}=dp_{L,P}+1 , dp_{P,R}=1\)
    最后异或上所有的 \(dp\) 值即为答案

2025/09/04

同上面02,四,二,懂?
考虑杂题,四道题一下午只做出来一道(

  1. P5504 [JSOI2011] 柠檬
    斜率优化版子,李超树轮椅,嘻嘻嘻
  2. P3209 [HNOI2010] 平面图判定
    考虑每一条边要么在曼哈顿回路形成的⚪内,要么在⚪外,2-Sat做完了,考虑平面图的欧拉公式: \(v+p-e=2\)

2025/09/05

考虑考试(炸

2025/09/06

考虑vp abc,abc422e 随机化有点意思,时间复杂度之王(

2025/09/09

考虑vp cf 1048 Div2

  1. CF2139A Maple and Multiplication
    非常简单,考虑每次变化三种情况:
  • a==b (0次)
  • gcd(a,b)a||gcd(a,b)b (1次)
  • gcd(a,b)==1 (2次)
  1. CF2139B Cake Collection
    非常煎蛋,你考虑贪心去取,排序后按最后一秒从大到小分配求和即可
  2. CF2138A Cake Assignment
    肥肠煎蛋,你观察到变换的次数不超过120次,且每次变换的上一步是固定的,所以你倒着去搜一遍即可
  3. CF2138B Antiamuny Wants to Learn Swap
    你注意到值域范围很小,然后转化一下题意,你就是去求区间有没有逆序三元组,线段覆盖区间查最小值,三颗线段树维护最近前驱即可
  4. 不会了(

2025/09/12

考虑vp cf 1049 Div2

  1. CF2140A Shift Sort
    考虑位移的实质:交换两个数,那么两个指针前后扫,贪心匹配即可
  2. CF2140B Another Divisibility Problem
    注意到每次拼接的x都可以是原数的二倍,然后你把原数乘二。输出来就行了)
  3. CF2140C Ultimate Value
    不难发现,Bob总会在第二轮选择结束游戏(Alice可以一直还原Bob的行动,然后只会增加权值)
    那么Alice肯定会在第一轮完成最优解
  • +_min 换 -_max
  • +_l 换 +_r
    判断即可
  1. CF2140D A Cruel Segment's Thesis
    访问 题解 谢谢喵)

2025/09/13

考虑上午核桃OJ考试下午四道杂题,下午忙于补做题记录只写了一道杂题(

  1. P3177 [HAOI2015] 树上染色
    比较裸的树形dp,转移方程为
    \(dp[u][j+p]= \max\limits_{v\in Son_u}^{j \le Siz_u p\le Siz_v}dp[u][j]+dp[v][p]+val*w\)

其中 dp[u][m] 表示以u为根的字树里选m个点染色对答案的贡献,从下往上dfs时处理合并,枚举j,p算贡献
其中w为连边的权值,val 为经过的次数 复杂度为\(O(n^2)\)

2025/09/16

考虑写CF2144喵

  1. CF2144A Cut the Array
    n <100 直接枚举即可
  2. CF2144B Maximum Cost Permutation
    贪心从前往后和从后往前找即可
  3. CF2144C Non-Descending Arrays
    访问 题解 谢谢喵

2025/09/26

前面几天都在vp喵,补题不想记喵

  1. P2709 小B的询问
    莫队版子喵,奇奇偶偶排排序序。
  2. P12621 [ICPC 2025 NAC] Circle of Leaf
    考虑树形dp,\(dp_{u,0/1}\) 表示以 u 为根的子树中方案,从下往上推
  3. P4198 楼房重建
    使用线段树维护一段最长上升的斜率, \(O( \log n)\)\(push\) 下放

2025/10/03

考虑今天的考试)

  • A. 大数定理(largenumber)
    所有可能的两个数一定是相距 \((n-1)/2\) 才能只删这两个数达到序列为1的,单调栈模拟即可

2025/10/04

记一下今天vp的cf

  1. A. Increase or Smash
    你发现n很小,于是可以while来砸碎序列中除零以外的最小值
    当序列中全部为0,结束并输出
  2. B. Catching the Krug
    考虑取横纵坐标的差的绝对值,因为B可以斜着走,所以A左右横跳是没有用的.
    A只能往相反方向逃窜,加上A反与B距离判断max即可
  3. C. Triple Removal
    由于只有0/1所以数量要么是三元组个数+1,要么是三元组的个数
    前缀和判断是否有00或者11即可
  4. D. Division Versus Addition
    访问题解谢谢喵)
  5. P5278 算术天才⑨与等差数列
    考虑形成等差序列的三个限制条件,设判断区间l,r是否可以形成公差为k的等差序列
  • \([l,r].max-[l,r].min=(r-l)*k\)
  • \([l,r]所有相邻差值的gcd=k\)
  • \([l,r]没有相同的数\)
    一二条维护区间最大最小值,区间差值gcd即可

2025/10/10

记一下今天的杂题)今天的题比较好

  1. P2964 [USACO09NOV] A Coin Game S
    看到这题,第一眼就可以搜索dp定义
    \(dp[i][j]\)表示取到第i个限制为j个时的最优解
    \(dp[i][j]= \max_{x \in_{}[1,j]}(\sum_{a_i}-dp[i+x][x*2] )\)
    就这样去搜,开\(O_2\)就可以A了,
    但是你发现记搜的复杂度实际上有\(O(n^3)\)
    所以正解不是直接搜
    你发现其实dp[i][j]与dp[i][j-1]状态数只有两项差距,所以可以直接特判
  2. P1758 [NOI2009] 管道取珠
    ddddpppp
    考虑组合意义(
    你发现一下:
    我们要求 \(\sum a_i^2\)
    我们独立地进行两次游戏,每次游戏都用相同的初始管道状态(相同的 s1 和 s2)
    那么两场游戏都产生第i种序列的方案数?
    第一次有\(a_i\)种方案产生序列\(i\)
    第二次有\(a_i\)种方案产生序列\(i\)
    两次都产生序列\(a_i\)的方案数就是\(a_i \times a_i=a_i^2\)
    所以实际上跑一边计数dp即可
    因为两个游戏完全对称,并且要求输出序列相同,实际上我们可以用一个四维 DP 来解:
    定义 dp[i][j][x][y] 表示:
    第一个游戏已取出了 i 个上管道球和 j 个下管道球(即剩余 n-i 上球, m-j 下球)
    第二个游戏已取出了 x 个上管道球和 y 个下管道球(即剩余 n-x 上球, m-y 下球)
    此时两个游戏已产生的输出序列完全相同(即之前取出的球颜色序列一样)
    的方案数。
    最终答案: dp[n][m][n][m](两个游戏都取完,输出序列相同)
    然后你发现i+j=x+y只有取得球数量相等,序列才可能相同,所以可以优化掉一维
    image
    然后你可以发现f[i][j][k]只与上一个状态有关,考虑作滚动即可
    image
  3. P2943 [USACO09MAR] Cleaning Up G
    维护pre颜色段dp即可

2025/10/11

记一下今天的考试题)

  1. A. 瘟疫(plague)
    你发现一下,n,m的范围只有两千,那么你bfs遍历一遍图,把连通块标上vis,记下大小
    然后再扫一遍遍历四个编号,取min即可
  2. B. 颤骨图腾(beacon)
    你发现你记录一下pre和net,然后每次就可以 \(n/k\) 遍历
    然后对每个k记录一下,做完了?
    $ \frac{1}{n}+\frac{2}{n}+\frac{3}{n}+\cdots+\frac{n-2}{n}+\frac{n-1}{n}+\frac{n}{n} $
    时间很熟悉啊,你就是调和级数喵!
    原式$ \approx n \log n $]
  3. C. 死灵法师(wizard)
    神秘东西,不会(
  4. D. 亡灵骑士(rider)
    你考虑背包+剪枝
    首先直接作 \(o(r^2)\) 的背包一定是不行的你肯定要优化
    还有剪枝,考虑什么时候卡的最慢:
    image

其中 \(x=sqrt(n)\)

2025/10/12

记一下昨天的abc

  1. C题
    读了题,k<=10
    状压一下,枚举做完了
  2. D题
    k<=10
    爆搜遍历一遍,然后记忆化一下,做完了
  3. E题
    不会(
  4. F题
    折半搜索,直接枚举
    考虑长度为n的不相邻序列只与长度为(n-1),(n-2)的不相邻序列有关,斐波拉契数列,其中\(fib_{30}\)大概是832040,然后记一下有没有选第一个,选作后一个,然后二分查一下,拼一拼就做完了)

2025/10/14

记一下今天的 cf1057 的vp

  1. CF2153A Circle of Apple Trees
    签到题,派一遍序然后跑一遍就做完了
  2. CF2153B Bitwise Reversion
    被骗了(
    你考虑一下:

$ \because $

  • $ a \And b = x$
  • $ a \And c = y$
  • $ b \And c = z$

$ \therefore $

\[x\And y= (a\And b)\And (a\And c) \]

\[=a\And b\And c \]

\[x\And z= (a\And b)\And (b\And c) \]

\[=a\And b\And c \]

\[y\And z= (a\And c)\And (b\And c) \]

\[=a\And b\And c \]

好了,三个叠一起,判断一下是否相等即可(

  1. CF2153C Symmetrical Polygons
    考虑首先一定要把成对的取完,然后成对的和加上一个数大于另一个数,二分判断即可
  2. CF2153D Not Alone
    隔位dp,你发现要么两个相邻,要么三个相邻,因为所有数都可以被二和三完全分解,所以dp时只需要考虑前三位,关于断环成链,只需要右移三次dp判断即可
    image

2025/10/17

今天补了CF1058vp

记一下一道不错的图论:

2025/10/18

敲了洛谷下午的SCP-S组模拟赛

2025/10/19

vp了abc428,记录一下

  1. A - Grandma's Footsteps
    模拟即可
  2. B - Most Frequent Substrings
    string 排序即可
  3. C - Brackets Stack Query
    括号匹配,考虑维护折线,满足值为0且前方没有负数位置才可判断Yes
  4. D - 183184
    你发现你可以把新加x后组成的数表示为 \(c\times 10^i+x\)
    用上界开根号减去下界即可,枚举这个 \(i\) 并且累加答案即可
  5. Farthest Vertex
    发现所有取值只会在直径的两端之一,两遍 dfs 找到编号最大直径端点,搜出直径上的所有点并记录答案
    再往下搜出答案处理即可

2025/10/20

vp了CF1060
完成了斜率优化的施工:Link

posted @ 2025-07-16 20:46  rerecloud  阅读(71)  评论(48)    收藏  举报