才刚考开学测就来初赛。
复赛之后就是月测,这就是初三吗。
初中最后一次 CSP,如果 S 没一等就得摆烂了。希望别因为各种原因爆炸。
中午下午借着刷初赛题的名义摆烂,半道题都没写。
CSP2023RP++
还在学校呆着
中午刷了半套题,把老师给的资料看了一遍
晚上甚至还有课,语文道法。
道法老师怕不是喝多了,《妈的比我的还先进,啊我不小心爆粗口了》《你们忘记我今天晚上说的话啊》《我们都是黑人》笑死我了。
9:30 离开学校
10:30 到家。
TC那句话早已跑到脑后,12:00睡觉。
日常9:00起床
做一套卷子,做一半不想做了(
摆烂到12:00
吃饭
继续摆烂
12:45出发
拿了本算法书在车上看,但翻都没翻一页
1:30到达,车上我妈发来了上午深圳CSP-J的试题,据说是某个聪明人带出来的,随便做了做。发现这人错了好多
但J组真的水。
1:45进入学校,在路旁发现了wxd,yzh还有学弟。
对了下考场,都在2楼,yzh和我一个考场,wxd在隔壁
聊了聊阴间题,然后一起去考场。
在考场外徘徊了20分钟,期间监考员不停催我们进去,顺便复习了一下linux的操作(这么早进去罚坐?
2:15进考场
环顾四周,前面有个大聪明,右边没来考试,左边是学弟,其他都是外校的。
监考员发答题卡、试卷
发了半天,答案是监考员偏要答题卡和知情同意书一起发,却不知道这样时间复杂度还是 O(n),但常数大了两倍不止。
扫一眼试卷,程序阅读第一题位运算,第二题好像是个筛,第三题单调性二分乱搞?第四题一道图论,第五题不知所云。
填完信息再从第一题看起,这不刚聊到的 mkdir 吗?6
T2组合数学120-24 T3算法复杂度比较(竟然没让你计算复杂度! T4考虑贪心的放前,然后发现直接铺更好,暴力枚举。
T5B什么玩意 T7暴力 T8计算
T9一眼望去什么鬼玩意把位运算和逻辑运算放一起?我记得是先位运算再逻辑运算的。但你把优先级都列出来了有什么意思?还有你好歹 a&b 整成 0 啊,不然我都不用算后面那串了。
T10 考快排流程 T11完了我不会,-o是啥?我只记得g++ main.cpp。o大抵是output?所以-o后面接输出文件名称,我选A
T12 4678一眼奇数,找不同xxs都会 T13 现场找环是吧 T14 算半天,直接到 9 的有 8 种,到 18 的有 2 种
T15 《quick_power》
抬头一看,过去了 15min,时间都耗在 T13 上了。
开阅读程序
又是一道无实际意义的程序,暴算
T16 随便推推就行,T17又考越界,T18计算是吧,T19又计算?T20 T21你只会计算是吧?
什么鬼畜的筛法,拿 i^k 筛倍数?f[i] 代表最小的质因数,g[i] 代表最小质因数的指数次方。呃下面还有。看不懂,手推。
玩不起是吧,算个质因数和有你这样的?
话说 solve2 怎么这么短。
输出两行?那估计两种算法答案相同了。
我看看。
草居然考起反演来了, ∑ i = 1 n ∑ d ∣ i d = ∑ d = 1 n ∑ i = 1 ⌊ n d ⌋ i = d = ∑ d = 1 n i × ⌊ n d ⌋ \sum\limits_{i=1}^n\sum\limits_{d|i} d=\sum\limits_{d=1}^{n}\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor} i=d=\sum\limits_{d=1}^{n}i\times\left\lfloor\frac{n}{d}\right\rfloor i=1∑nd∣i∑d=d=1∑ni=1∑⌊dn⌋i=d=d=1∑ni×⌊dn⌋
T22用脚想都知道会变,T23都说了相等,T24两题一起送挺好。T25 完不会分析,大抵是 nlogn吧 T26这还分析?人家就一个循环,你不会以为除法 O(logn) 吧?T27 计算
f内二分,f0算啥,不是,你是不知道有全局变量吗?用个全局变量会死吗?
f0 似乎在算对于每个 i,往左延伸最远的 j 使得 a[i] - a[j] >= m 的 i - j 的和是否大于 k
f就是在求最小的 m 满足上面的。够了,可以做。
T28 ✔,T29 越界 T30 模拟 T31二分复杂度 O(logA),枚举复杂度 O(n) T32 范围减少,那答案变大 T33 模拟
再抬头看一眼时间,还剩1h,先填了答题卡,再开完善程序
第K小简单路径?有点麻烦,怎么做。啊原来是DAG,水题,随便计算个路径数量就行了。呃,把做法都说了有啥意思。
T34 先跳过 T35 。。。先判断再减真有你的 T36 显然 现在再来看 T34,哦排名 k <=f[u],T37 k>1 T38 --k
算法无数,你偏挑难想到的,而且还更慢。
大致是通过分治,转化成求左端在左边,右端点右边的区间的贡献。那么显然最大值就是左边到mid的最大值和mid到右边的最大值,那么我们可以对每个左边的最大值,找到右边的比他大最大值的位置 i,计算左边的最大值 * 右边 i 之前的位置个数,右边的 j 到 r 的最大值和。所有 i 的答案加起来就是最终答案。
聪明的,你告诉我,为什么我们的区间左闭右开呢?
填完卷子还剩15分钟,摆烂,看看周围,这才发现yzh在我右后方,我这列最后坐着wyf,qyb在左后方较远处。右前方不远处是学弟。
随便检查一下,T11举棋不定,还是选了A。摆烂
监考员收卷子收了半天,原因是要收答题卡,答题纸,试卷,草稿纸,知情同意书,监考员还不会优化算法,不知道可以莫队反复横跳。
5min过后才放走,在教室外直接开始嘲讽ccf。yzh说g++那题答案是B
和qyb,yzh一起下的楼,qyb表示不够时间。出校门时遇到xhj,聊起关于左闭右开区间。
感觉没有不确定的题,必过无疑了。这次居然没考视频大小计算,还有今年是第几届,甚至连计算机硬件CPU都没提。但算法比往届难,甚至考到了反演推式子。
下午吃完饭又遇到yzh了,他告诉我g++那题答案好像是A,他前面选择题就错了这道。nice(
晚上估了一下分,不知道什么垃圾软件,大题让我填入答案,鬼知道怎么填,你倒是给选项啊。填完选择题就跑路了,28分。
又找到一份答案,对了一下,有些题不一样,全部算错的话有80左右,稳过了。
重新看了看答案,发现好像确实错了,T31 还有个排序,时间复杂度是 O(nlogA+nlogn) = O(nlog(An)),我绷不住了。T32 问的是原输出和现输出的大小关系,原输出和先输出,而不是先输出和原输出!
大约 84.5。
再见,还是去做作业吧。