- 2024-11-20[赛记] NOIP2024加赛5
暴力操作(opt)30pts这个错解可反悔贪心30pts;考虑正解,我们只需考虑前$\fracn2+1$小的数即可;考虑二分出一个中位数$mid$,那么我们要让大于它的都用最小的代价变小;考虑如何求这个最小的代价,因为$\lfloor\frac{\lfloor\fracab\rfloor}{c}\rfloor=\lfloor\frac{ab
- 2024-11-19[赛记] 多校A层冲刺NOIP2024模拟赛24
选取字符串60pts直接暴力60pts;这题难点在于读懂题把。。。考虑建出$KMP$树,然后在其中选出$k$个数,他们的$LCA$的深度的平方和就是这个答案,然后简单统计一下即可;具体地,把$KMP$树建出来,然后求每$k$个点的$LCA$的深度的平方和即可,最后乘上方案数(总的减去
- 2024-11-18[赛记] 多校A层冲刺NOIP2024模拟赛23
字符串构造机100pts原题,见[赛记]多校A层冲刺NOIP2024模拟赛01【衡中】T1;忍者小队60pts赛时最后想出来个$\Theta(n^2\logn)$的DP,所以60pts;对于这个DP,直接用map维护一下所有lcm的状态转移即可;点击查看代码#include<iostream>#include<cstdio>#include<vect
- 2024-11-10[赛记] 多校A层冲刺NOIP2024模拟赛20
星际联邦80pts前连20条,后连20条80pts。。。考虑正解,发现向前连最大,向后连最小会出现重边,所以避免出现这种情况,我们只需要在做完向前连最大以后,在向后连最小的时候连不是同一个连通块的即可;时间复杂度:$\Theta(n\logn)$,瓶颈在排序;其实这个思想就是最小生成树的那个BUA算法
- 2024-11-08[赛记] 多校A层冲刺NOIP2024模拟赛19
图书管理85pts2s1e10助我85pts;考虑正解,仍然是算贡献;这个题有一个很通用的套路:将大于某数的数看成$1$,小于这个数的数看成$0$;那么我们枚举$a_i$,运用上面的套路将$i$左边的前缀和算出来并开个桶记录一下端点编号之和,然后在枚举$i$右边的同时找到现在的前缀和
- 2024-11-08[赛记] NOIP2024加赛1 && 多校A层冲刺NOIP2024模拟赛18
暴力错解大赛玩游戏82pts乱糊的错解,正确性和时间复杂度都不对,但是拿了82pts;对于正解,考虑从$k$将原序列分成两个部分,左边和右边,然后分别求一次前缀和(注意这里,可以省去很多分讨和常数),设前一个前缀和数组为$a$,后一个为$b$,那么问题就转化成有两个指针$i,j$,可以任
- 2024-11-04[赛记] 多校A层冲刺NOIP2024模拟赛16 && 17
四舍五入100pts对于一个数$x$,可以发现它的答案可以分成两部分,一部分在$[2x+1,n]$范围内,一部分在小于它的数的范围内,前者$\Theta(1)$算,对于后者,我们发现满足这个要求的数$y$一定有$x\mody<w(x,y)$($w(x,y)$定义为如果$x\mody=0$,则$w(a,
- 2024-10-24[赛记] 多校A层冲刺NOIP2024模拟赛11 && 12
冒泡排序100pts比较显然的签到题(好久没这么水过了);考虑这个错的冒泡排序,手模一下即可发现这个$+k$有点像以前做过的同余系中求和的问题,于是这个题同理,用set维护每个同余系的排名,最后按顺序输出即可;对于正确性,相当于每次$+k$,则就相当于在一个同余系中排序;时间复杂度:$
- 2024-10-21[赛记] 多校A层冲刺NOIP2024模拟赛09 && 10
排列最小生成树(pmst)50pts又是诈骗题,然后又不会。。。暴力很暴力,直接建个完全图跑Kruskal即可;正解考虑如果我们连接编号相邻的点,那么每个边的边权都小于$n$真能考虑到吗?;所以我们最终的最小生成树中的边边权都小于$n$;那么对于$|p_i-p_j|\times|i-j|<n$
- 2024-10-16[赛记] csp-s模拟11 && 多校A层冲刺NOIP2024模拟赛07
玩水(water)100pts一道结论题,考场一眼出,结果认为不对,然后被硬控了2h结果打出了个抽象DP然后过了;赛后发现,这DP和那个结论是等价的。。。;首先考虑只有两个人怎么做,那么我们只需找出一个位置$(i,j)$满足$a_{i+1,j}=a_{i,j+1}$即可;那么三个人呢?设现在有两个满
- 2024-10-13[赛记] 多校A层冲刺NOIP2024模拟赛06
小Z的手套(gloves)100pts最大值最小,考虑二分答案;首先排序,然后每次找出数量较少的那个数组中的每个数$x$在另一个数组中有没有值在范围$[x-mid,x+mid]$的(其中$mid$为二分的答案),其实只需找$x-mid$就行,最后判断一下所有数是否合法即可;因为已经升序排序,所以
- 2024-10-13[赛记] 多校A层冲刺NOIP2024模拟赛05
这场数数好数(number)100pts找三个数的和,而且允许$\Theta(n^2)$,那么我们可以维护出两个数的和,然后每次顺序遍历找这个数减去前面的某个数在任意两个数的和中有没有出现过,这个也是$\Theta(n^2)$的;所以时间复杂度:$\Theta(n^2)$,如果带$\log$会过不去,要用桶维护;点击
- 2024-10-10[赛记] 多校A层冲刺NOIP2024模拟赛04
这场ACCODERS忘交,结果最后想起来匆匆只交了T1,然后文件名还没改,所以爆零了。。。02表示法100pts高精度,不说了;点击查看代码#include<iostream>#include<cstdio>#include<string>#include<cmath>#include<algorithm>usingnamespacestd;stringp[605];stringan
- 2024-10-10[赛记] csp-s模拟10
欧几里得的噩梦-pts看见是个线性基的题就没打;其实也不是线性基,只不过模拟了一下它的过程;考虑插入一位数时它能不能被表示,其实就是它异或上线性基中的某些值后可不可以为$0$,那么我们就可以将插入的单独一位数与$0$连边,将两位数互相连边,这样每插入一位数时看看它与$0$
- 2024-10-05[赛记] 冲刺CSP联训模拟2
三道计数+一道数据结构也是没谁了这场可是好好锻炼了我的写暴搜能力。。。挤压20pts暴搜20pts;把最后的答案进行二进制拆解,即$ans=2^i+2^j+2^k+...$,那么答案的平方为$\sum_{i=0}^{30}\sum_{j=0}^{30}s_is_j2^{i+j}$,其中$s_i,s_j$代表答案二
- 2024-10-05[赛记] 冲刺CSP联训模拟1[衡中]
几何100pts赛时打的$DP$没有用bitset优化过了,也是放过了暴力;考虑设状态$f_{i,j,k}$表示考虑到第$i$位,到第$j$位$x$和第$k$位$y$可不可取,直接转移即可;时间复杂度:$\Theta(|s||x||y|)$,应该是过不了的;点击查看暴力#include<iostream>#incl
- 2024-10-05[赛记] csp-s模拟7
median50pts错解50pts(有重复的数就不行);赛时想容斥了,其实不用容斥(好像也不能容斥);题解做法:将每个数存一个二元组,按大小排序,枚举每一个数作为中位数,再枚举每个位置的种类,看它前面和后面有多少这些种类的数,乘起来即可;这样就巧妙地避免了重复的情况,如果直接枚举,则有相同的数会被重
- 2024-10-05[赛记] csp-s模拟6
一般图最小匹配35pts纯纯的错解35pts;考虑将原数列排序,那么我们选的边就只能是相邻两个点的;发现这玩意能够递推(赛时没发现),所以直接$DP$,设$f_{i,j}$表示当前考虑到第$i$位,有$j$条边被选的最小权值,转移时考虑第$i$个点连不连第$i-1$个点即可;时间复杂
- 2024-09-29[赛记] csp-s模拟5
光100pts赛时打的错解A了,就很神奇;其实可以发现答案有可二分性,考虑二分答案,每次check时枚举左上角和右下角的耗电量,然后对左下角的耗电量再进行二分,最后判定以下即可;赛时就这么打的,然后赛后拍出来了;其实这个思路是对的,只是$\lfloor\fracn4\rfloor$这个条件有误差,所以暴
- 2024-09-28必可2024公益众筹赛2 之趋势赛记
鲜花挂分挂麻了。赛时7:50~9:00开始先看第一题,看到第一题这么简短就想都没想直接开做了,到\(8:20\)左右的时候就想到可以直接字符串哈希,然后枚举插入字母的位置\(O(1)\)判断去除字母后两个串是否一样就可以了。然后就写写写,写的时候发现分讨插入字母的大致位置比较好些,于是
- 2024-09-23[赛记] csp-s模拟3
奇观55pts赛时打的$\Theta(n^5)$和$m=0$的特殊性质拿了55pts;考虑正解,首先,$CCF$这三个字母是可以分开维护的;对于$C$,其可以看作一个连了四个点的线段,对于$F$,其可以看作一个连了三个点的线段在再最后分别多连两个点;设$f_{i,j}$表示维护一个连了$i$
- 2024-09-18[赛记] csp-s模拟2
不相邻集合64pts赛时打的用$set$打的假做法A了,但是没敢交,整了个暴力64pts;可以发现,对于给定的一个序列,我们只需研究每个数一次就行,因为如果一个数出现多次,答案是不变的;我们又可以发现,对于一个连续段(比如12345,其答案最多为$\lceil\fracn2\rceil$,其中$n$为
- 2024-09-18[赛记] csp-s加赛1
小W与制胡串谜题50pts这种题,就是想到+玄学;感觉刚接触OI时做过这种题,当时学得少,蒙一下就过了。现在蒙不了了,也确实可供想的方向很多,所以像这种签到题比较不好做;字符串数组是可以$sort$的,所以我们重载$cmp$为a+b<b+a即可;至于正确性,直观感觉一下确实是对的,要
- 2024-08-23[赛记] 暑假集训CSP提高模拟27
最后一场了,还是写写吧;线性只因40pts赛时把与看成或了,最后才发现,结果我的神奇代码交上去得了40pts。。。从高位到低位依次考虑,若这一位是1的数大于m则统计并删除其它的数;否则直接跳过;点击查看代码#include<iostream>#include<cstdio>usingnamespacestd;intn,m;
- 2024-08-23[赛记] 暑假集训CSP提高模拟26
这场rank4,应该是暑假以来打的最好的一场了。。。其它时候就没进过前10。。。博弈30pts赛时$O(n^2)$暴力30pts;对于暴力,我们能发现一个性质就是只要有一类边权出现了奇数次,那么先手必胜,所以我们枚举每一个点对,开个数组统计一下即可;不要忘了离散化;对于正解,用到了一个东