夏季坝记
2024年
最后几天了。
2024.12.28
还有几天就 2025 了,不能再废下去了。
现在是 18:27,还有一个多小时 Atcoder 才开始,不急。
AT炸了,D题有思路结果调了好长时间,废了
最后还是做了一道题,练一下单调队列太废了
剩下的不管了,睡觉。
2024.12.29
早上起来做了一道题
设 $dp_{i,j,k}$ 表示到了第 $i$ 棵树,这里种第 $j$ 种树,前面种第 $k$ 种树获得的最大价值,其中 $0$ 表示第一种树,$1$ 表示第二种树,$2$ 表示第三种树。
结果炸了,于是看了题解换了一种状态表示,$dp_{i,j,0/1}$ 表示到了第 $i$ 棵树,这里种第 $j$ 种树,这里的树比两边都低/高获得的最大价值。
于是得到状态转移方程(其中 $v_{i,j}$ 表示第 $i$ 个位置种第 $j$ 种树获得的价值):
$dp_{i,j,0} = \max{dp_{i-1,k,1}}+v_{i,j},0\le k < j$。
$dp_{i,j,1} = \max{dp_{i-1,k,0}}+v_{i,j},j< k \le 2$。
答案为:$max{dp_{n,j,0/1}}$。
但是这样还是会挂,因为这是一个环,这时只要在 $n+1$ 位置再复制一份 $1$ 位置的就好了。
中午的时候发现今天坠机了,还挺严重,死亡人数破百了,等着调查报告出来吧
下午模拟赛,T1简单矩阵加速,花了一小会过掉了。
T2是欧拉函数题,没做出来,其实只要把式子做一个变形就可以使用欧拉函数解决,赛时打了暴力,20。
T3神奇状态压缩dp,赛后个人觉得紫,赛中想到了状压dp,没调出来,爆炸。
T4没时间写,不过还是看了一眼,个人感觉平衡树+LCA,赛后讲题发现是这样的,不过赛时思路还是有一些细节上的差别。
最终:100+20+0+0=120,废了。
晚上玩原神去了,明天又周一了,补药上学。
2024.12.30
过完今天距离2025年只剩1天了,时间过得真快啊
期末复习了,随便做两道题吧。
这次练练 DP,开题。
设 $dp_{i,k}$ 表示第 $i$ 个元素,删除 $k$ 次获得的最多的 $a_i = i$。
推出状态转移方程 $dp_{i,k}=max{dp_{i-1,k-1},dp_{i-1,k}+[a_i==i-k]}$。
答案就是 $max{dp_{n,k}}$,其中 $0 \le k \le n$。
几分钟打完代码,少有的一遍 AC。
2024.12.31 补:昨天还想做一个线段树呢,结果炸了,于是就去睡觉了...
2024.12.31
今天是今年的最后一天了,多做点题。
线段树好久没打了,手都生了,打一发。
线段树蓝题炸了,你们帮我调调。
于是气不过,去打了个 P4588 [TJOI2018] 数学计算,一遍 AC,不过也没什么的,这种水题一遍 AC 是应该的。
本来这题想用栈保存值为 $1$ 的地方到时候拿来重复使用以便在随机数据下节省空间,结果炸了,不用了,反正也没啥用。
补:昨天终于 AC 了 P4344 了,75pts的原因是没有在query函数中初始化返回答案的rs变量导致可能会导致内存出点小问题然后就爆炸了
引用虫队名言

2025年
新年辣,高兴了(
2025.1.1
终!于!新!年!辣!
但是还要接着卷()()()
随便做一道树形 dp 就好了
最后树形dp也没做,啥也不干了,自己完蛋了,反正也是元旦,给自己放个假吧。
21:56
不行我得努力隔壁机房的大佬都初一蓝钩了我还是个死绿,我必须要努力了
随便找点题目想想思路吧,代码明天打
思考的思路:$dp_i$ 表示到达第 $i$ 个隔板的代价,但是这样需要考虑从哪里下来的,很麻烦。
想了一会不会去看题解了,把问题想复杂了,因为要移动一定需要先移动到边缘,只需要加一维表示移动到最左边和最右边的代价即可,最后 $t$ 的时候就不用移动到边缘了,单独转移即可。
2025.1.2
今天没啥事,开题。
在学校想了一会 dp,先是 $dp_{i,j,k}$ 表示第 $i$ 天学第 $j$ 个算法,学了 $k$ 天的方案数,后来发现第三位可以压掉,于是就开始想转移,每个状态枚举学了几天,状态转移方程为:$dp_{i,j} = \sum_{k=i-a_i}^{i-1} \sum_{l=1}^{m} dp_{k,l} \times [j≠l]$ 发现可以用前缀和优化,快乐打完代码结果爆炸,于是去看了题解,发现和题解思路还有一些细节上的问题,在于处理前缀和的数组,还是太菜了。
2025.1.3
2025.1.5 补,那天做了一道神奇结论题,一道前缀和优化 dp,还行。
2025.1.4
最近期末考试了,少做点题。
最近也在刷这种题,一般都是状态表示和状态转移方程想出来了,结果在边界条件、答案表示和一些细节方面炸了,调了挺久,还是菜,下次做题想好了再做。
晚上刷道线段树小题,第一遍用的 bool 数组,保龄,果断重构代码,使用 bitset,AC。
明天把方差做了。
2025.1.5
今天把棠梨煎雪做了。
先把思路想了,然后代码明天打,今天晚上打个方差。
思路比较简单,线段树维护两个东西,$STR$ 维护一个只含 0,1,? 的字符串,表示这个区间合并后的字符串(比如 00?? 001? ?0?? 合并后就是 001?),如果不合法,单开一个变量 $isok$ 记录。
push_up:只需要扫描两个字符串,如果两个都是 ?,这里也是 ?,一个是 ? 一个是 0/1,则这里是另一个不是 ? 串的字符,如果两个都不是 ? 并且相等,这里就是那个相等的值,否则不合法。
知道了Push_up这题目基本就出来了,剩下的就是线段树板子了。
然后看这个数据范围,不能简单地用 string,好像得开数组记录(不对,int 好像比 char 费内存欸。
我好像还想出了用两个 bitset 的做法,第一个维护这个位置是否已知,第二个位置维护他的值。这种方法好像和数组方法差不多,但是可能常数小一点(? 不管了就这种吧
等下刚看到这题 $m=10^5+7,n=30$,线段树悬。扶苏你想咋滴,想玩快乐小卡常啊。
快期末了,练练自己的思维(? 开个新题想想思路,这次做神奇恋爱题。
设 $dp_{i,0/1}$ 表示第 $i$ 天,$0$ 旅游,$1$ 吃饭的最小花费。
则边界条件为:$dp_{0,0/1}=0$,答案为:$min{dp_{n,0},dp_{n,1}}$。
状态转移方程为:
$dp_{i,0}=min{dp_{i-x,1}+p\times x^2}(1\le x\le i)$,
$dp_{i,1}=min{dp_{i-x,0}+q\times x}(1\le x\le i)$。
直接转移显然是 $O(n^2)$ 的,爆炸,考虑进行优化。
但是我们可以列出小范围时的 $dp_{i-x,1}+p\times x^2$ 和 $dp_{i-x,0}+q\times x$ 来进行找规律以便后面
的优化。
用程序打了一个小表:
to 1
findmin dp0:
dp_{0,1}+p*1*1
findmin dp1:
dp_{0,0}+q*1
to 2
findmin dp0:
dp_{0,1}+p*2*2
dp_{1,1}+p*1*1
findmin dp1:
dp_{0,0}+q*2
dp_{1,0}+q*1
to 3
findmin dp0:
dp_{0,1}+p*3*3
dp_{1,1}+p*2*2
dp_{2,1}+p*1*1
findmin dp1:
dp_{0,0}+q*3
dp_{1,0}+q*2
dp_{2,0}+q*1
发现:每个寻找 $dp_{i,0}$ 时的附加权值都会比上次多,第 $j$ 个位置会比上一次的第 $j$ 个位置多出 $2\times (i-j+1) -1$,$i$ 是这一次遍历到的位置,注意到 $2\times (i-j+1) -1$ 是一个等差数列,公差为 $-2$(?。
这样我们就需要维护一个数据结构,支持:查询最小值,区间加等差数列。
到这里卡住了,自己再思考两天吧。
看看树形 $dp$ 吧。
$dp_i$ 表示第i个人向他的上司写信的最小代价。
显然每次转移找花费最小的 $\lceil \frac{A_i}{T} \rceil$ 个下属即可,找的过程使用 sort,总复杂度 $O(n \log n)$。
两遍过,不开__见祖宗。
方差就不打了,好好复习语文和道法吧。
明天期末考,OI 之神(? 保佑(相信 OI 之神啥都能保佑)
2025.1.6
明天考数学和地理、生物,刷点AT练练思维(讨厌的数学最后一道大题)
随便开点题然后就去玩吧
开始想的是线段树,比较简单,就是维护俩tag,记录区间加的值和加的倍数,然后发现没这么难。。。
由于 $2$ 操作只有 $10^4$ 个,而且是全局修改,所以完全可以每次修改把修改的数加到一个 map 里,然后查询$\sqrt x$ 的处理出他的所有倍数最后累加答案即可,不看题,我是傻逼。
2025.1.7
期末考试数学坠机了,心灵受到极大打击,只能做题缓解。
做个神奇 dp。
这道题很早之前就开始做,设 $dp_{i,k}$ 表示到了第 $i$ 个数,分成 $k$ 段的最大恶心值,方程也很好想,每次枚举给这一段分多少个就好了。
结果莫名其妙 WA 了,重构代码,AC 了???
这个故事和上一次的神奇线段树事件告诉我们:代码调不出来就重构。
2025.1.8
考试坠机,排名垫底,只能滚回家打信竞。
考试结束的早,中午就放学了。
心情极差。
废了。
开题吧。
没得可说,简单 dp 即可,状态设计考虑第奇偶次杀怪即可。
开始想的是获取所有节点的 LCA,然后把 LCA 到每个点的路径上的每一个点算一遍,最后统计答案,可以用树链剖分解决,但是太麻烦了。
其实如果一个节点不是重要的节点,即不在 $V$ 中,那么如果他的子树也不是,那么这里就可以放弃。
最后一遍统计大小即可。
代码明天打。
2025.1.9补:稍经思考,发现可以不使用树链剖分,因为这是个离线查询,只需要使用一次树上差分,最后统计有被赋值的点的个数即可。
2025.1.9
今天在 SDSZ 上课了,做了一道神奇树状数组,个人感觉跟 三元上升子序列 差不多,不过是在二维平面上去做。
回来继续做两道树状数组吧,类似求逆序对的水题,正反使用值域树状数组搞一遍就好了。
不对,竟然有恶心的离散化,宝了个贝的。
没事,看我 copy 大法!
最后还是手写了离散化。。。
A了。
作为水谷究极彩笔,肯定要多做点题弥补一下自己的菜。
想了一会,不会,遂开题解。没想出来的主要问题在于没有注意到平均数问题的常用套路:将每个数减少 $m$,若一个连续的区间 $[l,r]$ 平均值大于 $m$,则 $\sum_{i=l}^{r} (a_i-m) \ge 0$。
这个很好想。
如果 $\frac{\sum_{i=l}^{r} a_i}{r-l+1} \ge m$,
则我们可以移项(此处 $r-l+1$ 大于 $0$ 啊,应该没谁会计算长度为 $0$ 的这玩意。。。),得到 $\sum_{i=l}^{r} a_i \ge (r-l+1)m$。
再把这 $r-l+1$ 个 $m$ 分到 $\sum$ 里面就得到了 $\sum_{i=l}^{r} (a_i-m) \ge 0$。
这时候我们求出 $a$ 的前缀和数组 $suma$(已经减去 $m$ 了),若有一组 $l,r$ 满足 $suma_r-suma_{l-1} \ge 0$,则会对答案产生一组贡献。
移项得 $suma_r \ge suma_{l-1}$,到了这里基本上这题就出来了,只需要枚举右端点,然后开一个权值树状数组来维护就可以了。
开肝代码。
终于AC了,真不容易,期间数组还开小了一次()
2025.1.10
原来2025年已经过去了十天了啊...
开题。
题意:求有多少组 $[l,r]$,满足 $L \le \sum_{i=l}^{r} a_i \le R$。
昨天的那道题的思路印象还很深,自然而然的想到了先求一个前缀和,记为 $suma$。
然后问题就变成了求有多少组 $[l,r]$,满足 $L \le suma_r-suma_{l-1} \le R$。
还是一样的套路,枚举 $r$,这时候需要寻找 $suma_r-R\le a_{l-1} \le a_r-L$ 的 $l-1$ 的个数($l \le r$)。
这个问题还是一样的,值域树状数组,启动!
然后离散化、处理负数很麻烦,但是肝就完了。
诶不对不用处理负数,离散化已经帮助了我们()()
诶还不对,好像离散化完了就不太能直接对离散化完的数进行加减了
废了,不写了,下一个。
如果固定了 $j$,则需要求的是 $\sum_{i=1}^{j-1} \max(a_j-a_i,0)$,如果有 $i$ 对答案产生贡献,则一定要 $a_i < a_j$,考虑值域树状数组,开两个树状数组,一个统计值域为 $1$ 到 $a_j-1$ 中所有数的和还有所有数的个数,这样就变成树状数组板子了,记得开 long long。
2025.1.11
继续做树状数组,开题。
算了不写了,做个简单树状数组吧。
通过找规律得到长度为偶数,答案为 $0$,否则答案为 $l,l+2,l+4\dots$ 的异或和。
2025.1.13
没干啥,学校训练,并查集。
总结:
想好了再合并,别夏季吧合并。
2025.1.14
今天是个臭日子,今天还有过的必要吗(恼
开题。并查集水题
显然可以通过奇偶性来分辨是 $1$ 还是 $2$。
对于每一个关系,如果知道了一个数,另一个数字也就显然了。
那么我们把关系中的两个数字合并,形成一个大集合,只要其中一个元素知道了,那么就可以根据关系得到集合中的所有元素。
所以答案就是有多少个独立的集合,水。
给出一个无向图,每次删除一条边,问有多少点两两不可到达。
如果有 $k$ 个点集,大小分别为 $A_1,A_2 \dots A_k$,集合内的点两两可达,不同集合的两个点两两不可达。
则显然只有不同集合的点才能对答案做出贡献,所以两两不可达的点的数量就有:
$$
\sum_{i=1}{k}\sum_{j=i+1} A_i\times A_j
$$
暴力的求复杂度显然是 $O(n^2)$ 的,可以导公式将其优化成 $O(n)$,不过效率还是太低。
每次删一条边不好搞,我们反着来,从第 $m$ 条边开始加边,统计答案后反着输出即可。
又注意到,每次的答案可以从上一次的答案中推导而来。
考虑合并两个集合后的答案:
如果在两个集合未合并时的答案为 $ans$,合并的集合为 $i,j$,合并后两个集合的点互相可达,则原来两个集合不可达时的贡献:$A_i\times A_j$ 就没有了,所以现在的答案就是 $ans - A_i\times A_j$。
最后记得开 long long,这道题就差不多了。
思路无误,但是代码实现的时候要注意在这次答案不会产生贡献时一定要记录下来答案,不能直接跳过,这样会导致 WA。
2025.1.15
普通的一天。今天 SDSZ 没课,在家补题+做题。
思路好想,每次直接合并完了在并查集的根(?上开一个数据结构维护第 $k$ 大即可。
一看要用平衡树,这合适吗?对于一道绿题这合适吗?
于是看题解发现可以用 set。。。
然后要启发式合并,每次把大小小的合并到大的身上,没想到,我傻逼。
权值并查集板子,单开一个数组 $c$ 记录每个人到他的根节点所需的距离即可。
在合并时判断合法,不合法直接跳出就好了。
最后前面两题都没写,废了,练思维吧。
注意到如果选择了负数那么必定数量为偶数。
那么把正负数区分开,按照绝对值从大到小排序。
枚举选择多少个负数,剩下的全部乘上正数。
然后细节的处理:
如果有负数数组为空,那么直接在另一个数组选 $k$ 个往上乘。
如果正数数组为空,判断 $k$ 是否是偶数,是的话选绝对值大的,否则选绝对值小的。
$0$ 的情况可能不用特殊考虑,如果数组中有 $0$,那么最后答案和 $0$ 取 $\max$ 即可。
思路好像不对,一道题也没做出来,感觉完蛋,我该怎么办
看看一月十号的没做出来的那道寿司题吧。
思路的话,应该没什么大问题,但是问题在于离散化后处理加减的问题。
其实没那么难,由于这个 $L,R$ 都是固定的,所以可以在离散化的时候顺便把 $suma_i - L$ 和 $suma_i -R$ 离散化掉就好了,写一些吧。
终于过了。
2025.1.16
今天去 SDSZ 上课,因多次不听话不写调试语句被教练骂了
学字符串哈希了,做两道题。
思路比较简单,卡常比较完蛋。
开始调试。
不是怎么这么毒瘤啊不写了
咋一道题也做不出来啊 tmd
虽然是板子,但是还是要注意一些细节的。
$c_i$ 表示的是自己在根节点右边多少,不能夏季吧合并。
则合并 $x,y,d$:要把 $y$ 接到 $x$ 上面,这时候该怎么连边?
边的长度为 $c_x-c_y$,根节点在 $x$ 左边 $c_x$ 位置,自然要加上 $c_x$,同理也应该对于 $y$ 减去 $c_y$。
如果这个权值 $< 0$ 说明不合法,跳出。
否则合并即可。
剩下的便是板子了。
调了一会,终于 AC 了,但是中间还是有大量的 WA,问题在于不能很好的理解 $c$ 的含义,夏季吧合并,我还是特么的菜。
偶然这道题的讨论区发现了一位巨犇 ,看着他的游记感觉整个人都有精神了很神奇,遂决定每天拿出来膜拜防止颓废。
看着博客觉得自己极其彩笔,于是情绪上来了对着屏幕打了自己几巴掌。
打完了不能白打,把校内集训队的题补一补吧。
22:20 校内 OJ 神奇平衡树题 AC,解决了几周来没能解决的难题。
2025.1.17
校内讲了文艺平衡树。
晚上回来调代码,快乐写完代码,遂爆,询问 kimi,遂知没在 print 函数内 push_down,遂加 push_down 于 print 函数中,AC。
还有今天老师讲的一个神奇代码小寄巧
使用引用优化代码长度
t[x].a=114;
t[x].b=514;
t[x].c=1919;
...
只要改成
node &tx=t[x];
tx.a=114;
tx.b=514;
tx.c=1919;
...
代码变短(至少写起来方便了,在不开 O2 的情况下效率高一点。
今天看着同桌像开了挂一样狂 AC 题目,自己却是菜逼,心中非常不爽,发誓今后要努力学习,绝不再碰原神。
今天继续膜拜大佬博客。
膜拜完补校内的题。
十一点四十了我得睡觉了,题明天早上补。
2025.1.18
不玩原神的第一天。
今天 SDSZ 没课,一下睡到八点,爽。
补补校内题自己再刷点题。
好久没刷线段树了,开一道。
只需要注意到两个地区的风的大小变化互不影响即可。
调了一会才交,看来是手生了。
当遍历到 $i$ 时,在 $a_i<j$ 时 $a_i$ 会对答案产生贡献,数量为原序列这个地方逆序对的个数。
如果 $j>a_i$,显然原来比 $a_i$ 大的数字现在还是比 $a_i$ 大。
很好的思考题,但是没开 long long 只得 35 pts。
2025.1.19
普通的一天,明天校内组队赛,和好兄弟一起打。
RP++。
今天依然学校集训。上午平衡树练习做出一道个人感觉较水的平衡树,一查竟然是紫题。
下午字符串哈希,简单解决了几个字符串问题。
晚上回来刷题吧。
想了半天 dp,结果是数学,溜了溜了。
但是这题是不是区间 dp 可做啊。
不对不行,带后效性。
喵它宝贝的。
也是今天校内做的题,没想到开 $62$ 个平衡树,废了,在听完思路代码实现时把 int 变量打成 char,进食后人,别犯这个傻逼错误。
之前一直没理解题意,其实很简单。
就是给你一堆字符串和一个大字符串,求大字符串的最长的一个前缀使得这堆字符串能拼出这个大字符串。
$dp_i$ 表示这一堆玩意能否拼出前 $i$ 个字符,然后方程就显然了,判断相等使用哈希,很开心的搞完了。
2025.1.20
春节之前最后一节课,机房组队比了个赛。
炸了。
和好兄弟一起只做出来一道。
罚时极多,垫底了。
怪我了,拖了后腿。
坐在回家的车上,好好的反思了一下自己。
自己竞赛这两年好像也没打出什么成绩。
连入门组的一等都没拿到。
每周六的 ABC 也只有三四题做出来了。
算法是学了很多,但是只能打板子,上思维了就完蛋,其是也没那么完蛋,给点思路的大概方向也是能写出来的,有时候只需要一两个算法关键词即可。
好像机房人人均比我强,我要不退役吧。
(不过文化课已经跟不上了,现在退役可能最后也就什么也没有了。好像不退役也改变不了什么啊,算了,就当是在玩吧,打下去)
emo 了一会决定做题。
这段时间在学哈希,来两道。
看到标签才想到做法的,菜还需多练。
拿一个栈维护,如果栈顶有目标串,暴力弹出。
分析复杂度,弹出最多进行 $|s|$ 次,复杂度瓶颈还在判断,又想到哈希进行判断,手写栈维护一下哈希值还是可以的。
在字符串末尾添加最少的字符使得该字符串成为回文串。
最好的情况:整个字符串是一个回文串,不需要进行操作,对称点为 $\lfloor\frac{|S|}{2}\rfloor$。
最坏的情况:整个字符串完全不回文,复制一份放在末尾对称点为 $S$。
先把字符串复制一份放在末尾,计算哈希值,枚举对称中心,判断即可。
第二题明天打,今天打第一题。
注意不能写 a[++cnt]=cnt-1 之类的话,不同的编译器会产生不同的编译结果。
如果 $n$ 为偶数,必定无解。
否则枚举插入字符位置,剩下的串进行拼好串操作,应该可以用哈希解决。
记录可行的方案个数,$>1$ 是解不唯一,否则输出就好。
2025.1.21
想题。
注意到每条运输计划是互相独立的,于是考虑单独分开解决。
不小心看到了标签,二分,好知道咋做了
记录每条路径的最大边权还有边权和,每次超过了减去最大的边权和,还是小就爆炸。
不对那这样直接枚举要删哪条路径的就好了啊不用二分。
不对边会对一堆路径产生影响,于是先找长度最大的路径把边删掉就好了。
欸还是好像不太对,算了再想想吧。
今天状态依然不好。
题单里的题目一道都没做出来。
脑子有思路也是想歪或者想简单了。
看着网站上一群蓝钩佬不知道自己该干什么。
已经废到了下午四点。
找题打了一发喜提 TLE。
那么今天就休息吧...
最后还是练习了一个比较板的树状数组优化 dp,依然是转化前缀和的套路
2025.1.22
这两天都是凶什么的,不玩原神导致的。但是我是绝对不会再玩的了,玩了我就是可爱小南梁(
昨天上床睡觉的时候突然想到转化平面点的做法,于是飞起来拿笔记下了思路
考虑将 $a_i$ 和 $b_i$ 转化为平面坐标系上的点,于是就要有 $a_j<b_i$ 和 $b_j>a_i$,对于每一个点的贡献,可能是要找 $(b_i,a_i)$ 左上角的点,但是样例都过不去,于是放弃了,以后再想。
最近小脑萎缩的很厉害,题都不会做,谁来帮帮我啊
注意到我们至多修改 $k$ 个连续的数字,不然就是脑子抽抽了。
所以我们滑动大小为 $k$ 的窗口,此时要让区间修改的次数最小,也就是找一个数字 $k$,让 $\sum_{i=l}^{r} |a_i-k|$ 最小。初中老师教过我们,这种情况取中位数就好了,然后这种动态求中位数很适合用平衡树维护(好像堆也可以 ?)于是代码明天打,换题想思路。
如果一些区间两两不包含,那么这些区间可以排序成左右端点均单调递增的形式。
于是维护双指针+平衡树,这题就做完了。
十点半了玩会崩铁睡觉。
2025.1.23
过掉神奇平衡树2。
好好好,喜欢上FHQTreap了,这玩意真好用。
今天看着同桌像开了挂一样狂 AC 题目,自己却是菜逼,心中非常不爽,发誓今后要努力学习,绝不再碰原神。--日寄by2025.1.16
我怎么又他妈去玩崩铁了啊啊啊啊啊啊
算了,再开一题,玩会崩铁没什么的。
设 $dp_i$ 表示前 $i$ 头牛分组后最少的优势、均势区。
状态转移方程:$\min_{j=i-k}^{i-1} dp_j+[H_i-H_j \le G_i-G_j]$,$H、G$ 为奶牛数量的前缀和。
第二个式子移项,$[H_j-G_j\ge H_i-G_i]$,于是可以以 $H_j-G_j$ 作为下标开线段树,每次分情况转移,大于等于 $H_i-G_i$ 的取 $dp_j+1$,小于的取 $dp_j$,每次把 $<i-k$ 的 $dp$ 值(超出边界)变成无限大就行了。
明天打代码,今天把昨天的第一道平衡树做了。
继续口胡思路。
这题还有双倍经验,还都是 CCF 出的题,CCF 这辈子有了。双倍经验
这种题很适合用 FHQ-Treap 来维护。
维护按照 size 分裂两颗 FHQ-Treap,一颗维护 $\le$ 光标位置的字符,一颗维护 $>$ 光标位置的字符。
一个一个分析操作。
$Move(k),Prev(),Next()$ 本质上是一种操作,此时如果向右移动,把右边的撅过来一块扔到左边的树里面,否则把左边的撅一块扔到右边的树里面就行了。
$Insert(n,s)$ 由于光标位置不变,所以是要把字符串搓到右边的树里面,而且要放到右边树的最前面,像这样:$merge(newstr,righttree)$。
$Delete(n)$ 分裂出右边树的 $n$ 个字符,丢掉不要就好了。
$Get(n)$ 分裂出右子树的前 $n$ 个元素,按照中序遍历输出即可。
设 $dp_{i,j,k}$ 表示用 $a$ 的前 $i$ 个元素凑出 $b$ 前 $j$ 个元素,取出 $k$ 个字串的方案数。
边界:$dp_{0,0,0} =1$,答案:$dp_{n,m,k}$。
转移:
枚举的是 $K$,如果 $a_{i-K+1}$ 到 $a_{i}$ 都等于 $b_{j-K+1}$ 到 $b_j$ ,那么可以转移 $dp_{i,j} += dp_{i-K-1,j-K,k-1}$。
于是思路想完了明天码代码。
2025.1.24
Man!What can I say?
做题的时候在题解里学到的,没想到,我傻逼。平衡树在不好查找某一个点的位置的时候可以从这个点向上到根,同时记录排名。
做点最小生成树提升下自信,今天状态不好。
首先这题的贪心思想是最小生成树的,还要明确一点,如果要选择一条边,那么一定会选择这条边所在行/列的所有边,这是显然的。
于是就是并查集的判断了。注意到对于 $100%$ 的数据,最大会有 $9\times10^{10}$ 个节点,这样是会爆炸的。
于是我们分开统计,记录每行每列没有包含入最小生成树中的点的数量,如果一行内的所有节点被包含入最小生成树,那么这行的直接清零,每列减一。
列的情况也是同理。查询的时候,我们需要查询某行或某列的没包含入最小生成树节点的数量,于是区间加,单点查,树状数组没错了。
这道题基本上就差不多了。
mlgb的做法假了做法假了
克鲁斯卡尔算法用tm的并查集的目的是判环!!!
又注意到只需要连 $nm-1$ 边就他妈可以让整个图连通
代码想不出来
ctmd
2025.1.25
开题,做树状数组题。
先离散化,因为这题只要相对大小。
这题使用递归,每次用两个树状数组记录值域加减情况。
合并的时候存了数字小的数组暴力的往大的数组上合并就好了。
这个好办,小的那一侧的子树中序遍历,合并到大的子树上面就行了。
分析复杂度,一共不到 $n$ 次合并,每次合并取一个字数的
不对!!!
这不是二叉树!!
于是使用平衡树合并就行了。
合并的时候注意不要直接合并,要把树拆开,保证合并后还是一颗有序的平衡树。
简单模拟。
观察题面注意到,宠物和人计算后对答案的贡献是一样的,只是种类不同。
开写。
晚上 ABC 爆炸,梦回组队模拟赛。
2025.1.26
今天干掉两道水紫。
第一眼以为链表就可以解决,但是又想了几天才明白这玩意是需要找到位置的,所以链表就废了。
这道题在校内 OJ 就一直被卡,直到今天在洛谷找到原题了才明白为啥 WA。
在下传标记的时候没有更新子树的最大值,导致 WA。
在 FHQ-Treap 下传标记的时候一定注意要更新什么!!!
而且在初始化的时候一定要把该初始化的东西初始化,不要等着后面的push_up去给你更新!!!,我有一次写平衡树就是被这玩意卡掉的,不过在样例就找出错了QwQ。
注意到 $R$ 很小,于是以 $n$ 和 $R$ 作为状态,$dpn_{i,j}$ 表示以第 $i$ 号节点为根的子树,根节点填入 $j$ 时的方案数,还有一个 $dpc_{i,j}$ 记录最小花费。
边界:
$i$ 为叶子节点,$dpn_{i,j}=1$,$dpc_{i,j}=j$。
答案:
方案数:$\sum_{i=1}^{R} dpn_{1,i}$,最小花费:$\min_{i=1}^{R} dpc_{i,j}$。
状态转移方程:
某一个叶子节点是敌对关系:
$dpn$ 加上叶子节点所有可能的值对应 $dpn$ 的就行,值不会等于 $j$。
$dpc$ 给叶子节点所有可能的值对应的 $dpn$ 取最小就行,值不会等于 $j$。
同理,友好关系就是只有相同,平等关系就是随便,把 $1$ 到 $R$ 都来一遍就行。
明天水掉。
下午又做了道神奇前缀和小题练思维,详情:here。
2025.1.27
早上口胡点题。
地球上哪有这么多种动物啊
首先把所有数字都进行或运算,然后判断需要买哪几种类型的物品,然后对于每一种限制,如果需要购买的物品已经出现过了,跳过。否则记录下来。
随后,对于每一个需要注意的限制,把买它所需要的位置记录,然后就可以用神奇小数学做了(?
让我想想,算了问 kimi 吧。
啊对,如果有 $p$ 个位置不能为 $1$ 那么答案就是 $2^{k-p}-n$。
二月一直在咕咕,记得日记不多,就搬过来了,顺便比赛总结也有不过以后不会有了直接合并进日记了
2025.2.2
想了好久没想出来,问题在于没有注意到位运算的每一位是相互独立的。
于是可以记录每一位是 $0$ 或者是 $1$ 的时候对答案的贡献,然后直接选最大的即可。
此外位运算还有一个性质:$2k>\sum_{i=0}2^i$。
从大到小贪心,如果这一位能是 $1$ 则是 $1$,否则就是 $0$。
过了,而且理解了这题运用的位运算的性质,题解抄的不亏。
异或具有这样的性质:$x \ xor \ x = 0$。
而修改操作又是对相邻的两个数异或同一个数,这让我们想到了前缀异或和。
$ax_i$ 表示前 $i$ 个数字的异或和,则有区间异或和为 $0$ 就是存在 $l,r$ 使得 $ax_l=ax_r$。
先预处理无修改序列的值:处理到 $ax_i$ 时,找前面有没有和 $ax_i$ 相等的 $ax$ 值,由于此处 $ax$ 极大,所以使用 map。
然后对于一次操作,显然对 $ax$ 的影响就是给 $ax_p$ 异或上 $x$。
然后此时删掉和...
不对卡住了,要查找每次 $ax_i$ 之前和 $ax_i$ 相等的数字的值,但是这样不好维护,再想一下,如果有 $A$ 个和 $ax$ 值相等的值,那他们两两对答案产生一次贡献,即 $\frac{A(A-1)}{2}$。
那么按照值域做下标,开一个 map,然后第一次遍历 map 统计答案,随后每一次对 $ax$ 进行单点修改,这点数组就可以办到,随后给原来 $ax$ 所在值域的值减一,给新的值域加一,同时更新答案,这个答案直接重新算一遍就可以了,于是复杂度就是 $O(n \log n)$(好像? 了。
2025.2.7
没有写日记的动力了,那就随便记录一点自己觉得应该要记住的东西吧
面对要求两个东西的差值最小(例题 https://www.luogu.com.cn/problem/P1651 )考虑使用差值作为状态。
自己总是不会加状态,dp i j 很难想 dp i j 0/1就好想了自己总是想不到,菜。
2025.2.10
注意到串长不超过10,那么可以枚举可以匹配的字符串长度,哈希解决即可。
2025.2.15
十七号开学。
今天晚上有分层考,字符串 hash 和 tarjan 还不熟练,多练习一下。
这几天发生了很多事情,洛谷国际站在大陆被封,还有讨论区的去世。
对我来说这些事件的影响也就是调题只能靠自己和deepseek了,当然在之前我也没多少人帮过我,而且自己调错的能力也在提高嘛qwq
然后今天继续膜拜大佬每天观看30分钟大佬博客,纠正你身上的不良之气
对于大佬能在一两年的时间内拿到 CSP-S 1= 然后又 tm 去参加省队最后拿到 NOI Ag 还是很惊讶的
简单板子,一遍过,说明板子掌握了//
用平衡树做,去 nm 的堆。
对于 $x$ 和 $y$ 两颗平衡树,如何合并?
首先我们要记录树上最大值,记为 $mx,my$。
然后把 $y$ 分裂成两棵树,一颗 $\le mx$,另一颗 $>mx$,分别记为 $y_1,y_2$。
然后把 $x$ 和 $y_2$ 合并,现在没法合并了,开始想乱搞做法。
启发式合并!
很好。
这样 $n \log n$ 水过去了...
可以直接用堆的。
好题,比那些水紫好多了。
好好好,想半天平衡树合并想不出来去看题解了。
- 有节点不存在时,返回另一个节点。
- 否则,将小 Treap 按大 Treap 的当前节点值分裂,然后分别与大 Treap 的左右子树融合。
好好好学到了。
2025.2.16
昨天晚上的分班考试还是可以的,成功升班。虽然先AC T5再AC T1而且T5还差点看错题
依旧是老套路,首先要缩点,其次建一个反图,然后拓扑排序的时候就变成了在哪个点结束时候的最大价值。
然后遍历所有有98的点,寻找最大值即可。
答案是 $dp_s$。
2025.2.24
好好好,学到了,对邻接矩阵直接进行加速,由于这个矩阵乘法实现了类似 Floyd 的三重循环枚举 $k$ ,所以矩阵的 $n$ 次方(这样枚举了 $n$ 次 $k$ 相当于经过了 $n$ 次别的点)的 $M_{i,j}$ 就是从 $i$ 到 $j$ 经过 $n$ 条边的方案数。
二月怎么咕咕了一整个月,不行,不能再废下去了,再废就要成狒狒了!
2025.2.28
已经成为狒物。所以日记复活。
上古老题。同样的贪心,同样的思路,为何我没能在 CSP-
S 2024 中 AC,甚至爆零。
这题我一想起来心里就痛,于是最近疯狂刷题虽然没刷出来多少结果每天都十一点睡觉导致精神不好,今天要早睡了
做完这题去肝公路那题。
切掉了。
这样公路那题的想法便大概出来了。
我们先求出每辆车的超速区间。
画一个 V/t 图就可以直观的看见每辆车的超速区间。
这时分三种情况讨论:
$a_i>0$:
加速度大于 $0$,这说明这辆车如果超速,那么是在某一个点开始,一直到 $L$ 离开。
这时候我们二分的是到达第一个超速的点时的位移。
$a_i=0$:
加速度等于 $0$,这说明这辆车如果超速,那么一直会超速,即从 $d$ 到 $L$。
这个好处理,要超速一直超速,直接加上继续处理下一个就好。
$a_i<0$:
加速度小于 $0$,这说明这辆车如果超速,那么是从开始就超速,直到某个点(可能 $> L$)脱离超速状态。
这时候我们二分的是到达最后一个超速的点时的位移。
先按照右端点排序。
然后要求每个区间内必须有一个监控。
这样我们开一个指针来记录上一个被选择的监控,初始为 $-1$。
如果上一个监控在区间内,跳过。
否则根据上一题贪心的思想,直接往后遍历,找到最后一个能拍到该区间的监控,答案加一就好了。
思路看起来没问题,前面的神奇二分再写一写应该问题就不大了。
接下来,让我们直面这道困扰我三个月之久的题吧。
总会有地面上的生灵,敢于直面 CSP-S 的威光。
调了他妈到十一点还是 $70$ 分,明天继续。
如果那天我也能在考场上发挥出我的实力,拿个 $50$ 分 $70$ 分的我也不至于只拿这个傻逼绿钩啊。
[比赛总结]ABC394爆炸记
你个傻逼,树形 dp 都打不对,你去死算了
A 题
这不傻逼模拟吗,过。
B 题
这不傻逼排序模拟吗,过。
C 题
有点难度,不过只要从后往前匹配WA替换成AC就好。
D 题
这不傻逼括号匹配吗,过。
E 题
可能是 Floyd 之类的,不会,过。
F 题
这不树形 dp 吗,开干。
$dp_{i,0/3/4,0/1}$ 表示以 $i$ 为根的子树,度为 $0/3/4$ 时的最大答案。
夏季⑧写了转移,结果当然是直到比赛结束还是大量 WA TLE RE 一片了。
G 题
没看。
总结
要掉大分了
dp 实在tmd不熟练,同机房大佬都小学蓝钩了,我还这么菜,我去死算了。
我要练练 dp 了。
竟然奇迹般的没有掉分反而涨分了,感谢At。
[比赛总结]【LGR-215-Div.3】洛谷基础赛 #20 & FAOI-R4
今天上午想着好久没打洛谷的比赛了,来一发吧。
不过在点进比赛页面的时候又犹豫了,自己这么菜,会不会掉分,但是看了比赛简介里面的题目颜色,感觉可能打的话结果不会那么糟糕?于是就点进去了。
T1
这不傻逼模拟吗,注意下细节,过。
T2
位运算题。感觉思维难度还可以,适合放到 T2。
首先一眼先拆分一下二进制位,如果位数不够 $2^k$ 的话怎么办?我们看到字典序最小,肯定拆分小的,把小的拆的更小,字典序也就变小了,不过变成 $1$ 就不能再拆了,这个过程套一个堆就好了。
结果没注意这个数字自己单个就可以凑成答案的情况,想当然了,一发上去喜提 $70$,太傻逼了。
T3
傻逼结论题。
通过一个多小时的注意,终于注意到只有两个连续的上升子串,并且第二个串能接到第一个串的开头,这样才会对答案产生贡献。
具体实现环节,只需要预处理出来从每个节点开始,到什么时候这个上升子串被某个 $a_{i-1}>a_i$ 的 $i$ 破坏,随后找到每个位置两个上升序列的位置,在第二个序列中二分可以让第二个序列接上第一个序列的最大下标,然后答案显然就是这个最大下标-第二块的起始位置+1了。
虽然用到了二分,但是绝对跑不满 $O(n \log n)$,而且跑的飞快,只有 $780ms$。
注意的过程用到了 deepseek 帮忙,下次得自己思考了(好像是自己推一个大概结论然后让 deepseek 帮忙测试一下自己推的过程对不对)
T4
没时间看了,最后一点时间就去看题目背景了。
在此对于背景最后一段,我想说的是:
是我理解错了还是这个航站楼直接对着跑道然后气流由于某种原因可以吹进来,然后降落就是启德式降落或者跑道对侧降落,然后搞不好就成启德泡澡和天马航空3054了 我换个777-300ER过来拿GE90吹你你不炸了吗(
然后我这么菜的人竟然获得了 $130$ 的排名,等级分应该会大涨吧(上次打字比赛我都只有 $429$ 的排名)。
总结
下次多自己思考。
[后来这比赛的翻译还炸了?
E题翻译:
”“他打败了上世纪的黑巫师,Grindelwald。哈迈斯的首要目的是把以色列从地图集上摈除。本日我们就来看看这些游戏吧。我永远忘不了从Jack手中接过协议的那一瞬间。这包括享有榕源会(Sanctuary Club)涵盖逾40家度假村和酒店,逾60个SPA和80个艺品阁的全球性网络的折扣和特权。许多家长不知道如何处理这个问题,他们没有采取.. [更多]如果你想知道为什么美国的能力。最具有价值的不竭资源。二、请说明社会契约论对国家起源的看法。Buck Williams、Greg Monroe和Terry Cummings身体状况相对良好,表现下滑可能只是回归平均值。后来表明,劳动就它表现为价值而论,也不再具有它作为使用价值的创造者所具有的那些特征。
2.4.2 专家咨询组职责庆祝1982年圣诞节马林:谁说弱队就一定赢不了?亚德河号的改装工程并没有动工,而改装项目也于1942年11月下马。游戏的目的是通过分离提示数字建立岛屿,使得每个岛屿只能包含仅仅一个数字,并且每个岛屿的方格数量与岛屿提示数字相等。很久以前还没必要挣钱。这些妇女坐船到达意大利的移民接待中心,而这些中心被人贩子当作受害人的“储藏点”,随后人贩子会将她们拐卖到妓院。非常齐全我们的4晚住宿。你的问题还要更宽泛一些。纯粹的本能,显然地。答:300年时间
3月
2025.3.1
三月。
时间过得好快。
春天好像要来了,这两天天气暖和了一点,上体育课有时候也不用套羽绒服了。
上午 SDSZ 有课,做了两道题,把 Tarjan 结了。
回来继续调公路那题。
发现错误了,如果 $a_i>0$ 时套用第三个公式会出现巨大错误,导致超速区间变成负数,从而导致 RE & WA。
改完交上去,过了。
这道困扰我 $3$($4$ 个月了?) 个月之久的难(其实不难)题,被我搞出来了。
可惜这 AC 来的太晚了。
继续做题吧。
犇犇里零星的几个人在说一些关于省选的东西,貌似这两天是省选,但是我这种蒟蒻也去不了,甚至都得为CSPS和NOIP发愁,哎
草了我怎么又开始颓废了,赶紧看一看 cxy 大佬的博客,这玩意就tm像兴奋剂一样在我状态不好的时候让我的精神暂时振奋一下()
练习一下 LCA 吧,然后今天的代码就打到这里,然后口胡一些题再复习一些过掉的题,然后就去看 cxy 大佬的博客,然后再玩玩游戏,今天就这样了。
过了,这题的缩点部分是是我在学校的体育课上灵光一现想出来的,既然要求大小为 $2$ 的环不能被形成,那我们考虑什么时候大小为 $2$ 的环会被形成:返祖边指向的点与当前节点高度差 $= 1$ 时,也就是和 dfs 生成树上的父节点连反向边时就会出现大小为 $2$ 的环。
于是记录父亲,跳过指向父亲的返祖边,然后其他就正常 Tarjan LCA 即可。
好了开始口胡一些题的思路 + 看 cxy 大佬的博客。
当然今天也不忘打 ABC,等开始。
现在还有两分钟,我去拿点水,再来几勺盐塞嘴里让自己清醒一下。
woc 盐真tm难吃。
结束了...
以 ABCE 的“好”成绩光荣退场。
D 题明明开始想出来正解了结果又他妈想歪了,我脑子废了,天天只会套板子,我还能干啥?
2025.3.2
今天补补 Atcoder 的题,再自己做点新题。
D 题的思路还是有点难度的。
首先注意到交换操作只需要看成交换两个巢的位置即可。
然后记录三个数组 $now,p,np$。
初始时他们的第 $i$ 的元素都是 $i$,他们分别表示每只鸽子所在的巢(不计交换操作),原来的第 $i$ 号巢现在叫第几号,还有叫 $i$ 的巢现在在哪个位置上。
然后操作一三都很简单直接更新输出就好,操作二对于 $p$ 的影响就是交换编号为 $a,b$ 的两个巢,但是在 $p$ 数组中寻找 $a,b$,我们需要 $np$ 记录位置,交换他们就好啦,然后 $np$ 的 $a,b$ 也交换一下,他们的位置也变了。
过了。
去洛谷上搞点题然后开 F。
好题,结果被我他妈看了题解。
首先如果想要再回到 $1$ 的话一定回合 $1$ 在一个 SCC 中。
所以我们的目标就是找一条路径,路径上的边最多反向一次,求得到的 SCC 的大小最大值。
看完题解发现思路和题解差不多,首先记录 $s_i,f_i$ 分别表示从 $1$ 出发到达 $i$ 时候经过点数的最大值和从 $i$ 出发到达 $1$ 时候的点数最大值。
然后就是经典缩点拓扑排序。
然后考虑枚举每一个节点,然后如何表示反向这个节点连接的一条边后的答案?
首先需要枚举连接这个点的正向边。既然是要反向,肯定是要从正向来从正向走的(反了一条边嘛),所以答案表示为 $\max{s_i}+\max{t_j}+1-siz_{start}$。$siz_{start}$ 表示根节点所在 SCC 的节点数,为什么要减去他呢?因为 $s_i$ 和 $t_j$ 会重复计算一次初始节点,所以要减去一个,反向边同理。
然后一定要注意不反向边,即整张图是一个 SCC 的情况,不然过不了 hack。
2025.3.3
前几天一直是阴天,今天的天空依然被阴云笼罩。
训练状态不太好。
周一没报课后服务,直接回了家。
补一补 ABC395 的题,今天补 F。
最近正好在整牙,看得我牙疼了
一眼贪心(?
思路就是把每颗牙都打磨的 $|U_i-D_i|\le x$,随后最小的 $U_i+D_i$ 就是我们的 $H$。
那么怎么把每颗牙都磨成 $H$ 呢?
注意到每颗牙是互相独立的狒话,于是考虑单颗牙怎么把高度磨成 $H$。
好像只需要每次磨高的牙齿,直到到了 $H$。
试试。
好 $10^9$ 的数据暴力枚举肯定不行了,自然要想一想做法了()
好想要到 $H$,自然是先把 $|H_i-D_i|$ 扩大到 $x$ 然后再同时减。
但是如果他们的差能到 $0$ 岂不是更好?
这样只需要分奇偶,如果奇偶性相同就直接同时减去,$H_i+D_i-H$,如果不同就先把 $|H_i-D_i|$ 缩小(如果他们已经是 $0$ 就是扩大 $1$,不过没关系,$X$ 最小是 $1$,所以不会出现这样完了 $H$ 需要重新计算的尴尬情况),$H_i-1+D_i-H+1$,还是 $H_i+D_i-H$,好的。
他妈的做法假了
二分!二分!二分!
好的二分 $H$。
2025.3.4
云层散了一点了,状态依然没有好。
回来练练傻逼贪心就结束这糟糕的一天吧。
2025.3.5
状态不好,整天在颓废。
2025.3.6
天上的云层完全散开了,晴空万里,状态似乎好了一点(?
晚上回来用一道傻逼二分结束今天的刷题吧。
操了我最后还没写(upd on 3.7
2025.3.7
云又tm把天盖上了。。。
我tm老观察这个云干什么。。。
明天 MH370 失踪十一年了,what can I say。
玩加钠实验室颓废了好久,我怎能这样。
自己想了一天出来的傻逼做法,可能还假了。
首先如果一群 $f_i>d_i$ 构成的最长连续下标的一段长度如果 $\ge c_i$,那么这个靴子就过不去。
问题转化为对于每个 $d_i$,如何求这个长度。
首先把 $d_i,f_i$ 离散化。
建立两颗平衡树,第一颗按照值域升序排序,节点记录下标,第二颗平衡树按照下标升序排序,还要记录这个节点所在连续下标块的长度。
1 2 3 / 5 6 7 8 / 10 11
这里 $8$ 属于的连续下标块的长度就是 $4$,大概就是这样。
当然还要记录子树中这个长度的最大值 $MXV$。
然后从小向大枚举可能的数字,当前遍历到了 $j$(因为离散化了,所以这里的值域最大 $10^5$),每次把值域平衡树中 $<j$ 的部分分离,在下标平衡树的地方删除,然后把这部分值域平衡树也删除。
然后下标线段树的根的 $MXV$ 就是我们所求的。
然后遍历每双靴子,看看这个长度是否符合就好了。
好麻烦啊,以后打,今天先做点贪心。
算了不敢了,懒得打矩阵乘法了。
首先推出几个傻逼结论:要么直接走过去,要么走到一个离起点最近的传送门传送到一个离终点最近的传送门传送过去,且最多传送一次。
然后由于到达的花费最少的点可能有多个,我们这里判断是否需要修改高度,这里使用 map 判重。
然后由于这个 JB $k \le 9\times 10^6$ 的 SB 数据范围导致跑的贼慢。
明天别忘了 ABC。
2025.3.8
MH370 失踪 11 周年。
早上起来去 SDSZ,老师把割点讲了,下午练练。
做题时不知为何想起了在 asc 训练的时光,当时在同龄人里面是真的菜,现在也一样,然后这道题的做法就假了。
我太想当然了。
什么时候才能改掉这个毛病啊
做题。
又着急了,边界写成了 $n$,没及时取模,扇自己两巴掌。
再他妈着急就飞起来。
草怎么又不想努力了
好了晚上打打 ABC 就好了。
2025.3.9
凶。
早上起来晕晕的,不知道自己该干啥,昨天的 ABC 完事了感觉自己啥也做不好,只能挂大分然后被大佬们爆踩。
于是决定补题。
昨天 ABC 用了一个小时才过掉 ABCD,E 十几分钟想出了思路,结果并查集不熟练 Rating 大涨机会 -1。
E 今天用 AI 帮忙把并查集的部分调了,过了,说明我的乱搞做法是正确的 QwQ。
开 F。
2025.3.12
今天是植树节,只要你观看了法航296空难的ACI纪录片,你每次坐的斐济就不会撞树坠毁(bushi
怎么看起来三月也要咕咕了。
今天我们学了割边,其实比割点简单。
然后打模板的时候把 dfn[x] 打成 low[x] 导致爆炸,警钟长鸣。
然后教练让用链式前向星我没用,然后教练让我上去讲题qwq
反正个人感觉做法是好的
回来水点题。
一眼题,这不傻逼矩阵快速幂吗,只需要把加法改成异或就行了,结果 TLE 了,呜呜呜
deepseek 给了个神奇做法,我不会。
我真的这么菜吗
deepseek又服务器繁忙了,只能找 kimi 了。
诶他妈的复杂度假了
我就是个傻逼,天天只会水题。
2025.3.13
数学课后服务(其实就是个..我也说不清楚,就是拓展点东西吧)我是最菜的,不想上了。
想了好几天,原来是道傻逼题,我菜爆了。
如果所有点都连向了某一个节点,这时候的最短路如果会被更新,那么一定是某条经过 $k$ 的路径。
我们记录所有类似 0 x x 0 这样的 $x$,然后把他们存到一个数组里面。
然后对于 $k=i$,把他们和 $k$ 的连边混到一起,然后取从某个点转移过来和从某个点到 $n$ 的最短路这两个东西的最小值。
然后答案就是 某个点转移过来 $+$ 从某个点到 $n$ 的最短路 $+ 2$ 和 直接从 $1$ 到 $n$ 的最短路 的最小值。
为什么会 $+2$?因为转移过来和转移过去各需要再跑一条边,当然 $1$ 和 $n$ 就不用多跑一条边了,所以 $1$ 或者 $n$ 的情况边数减一即可。
$n = 1$ 的情况好像... 啊没事那没事了,应该不会出错。
这篇文章也有一万字了,我觉得过不了几天就得新开博客了。
让 deepseek 帮忙找了点题,感谢 deepseek(大雾
一眼 dp,但是 $N \le 60$ 直接让我怀疑我的做法又假了,最后看了题解发现做法没问题。
开码。
过了,不开 ll 见祖宗。
打印一点题睡觉。
2025.3.14
一整天天空都是白的地球OL背景贴图炸了
打印的题,一点不会(还是会一道的?
回来又只会颓废
明天 SDSZ 的课希望状态好一点吧
2025.3.15
上午依然 SDSZ 有课。
草稿纸换新的了,见证。

浙公网安备 33010602011771号