SDOI2019Round1游记
Day 0
报道日,早晨五点睡的觉,一觉醒来已经一点半了,收拾收拾东西报道去了。因为没吃饭,坐着出租车晕车了,我让师傅把我放到历下大润发,我去金拱门吃了点饭才去的2333
报道的地方碰到了 子谦。
神仙,然后就没什么好玩的了,感觉要退役了哇……
另外今年竟然不允许试机?比赛环境只有dev而没有vim?甚至环境是XP系统?有点东西哦
三点多打车去领秀城给初中同学同学过生日,玩到晚上八点半,省选之前浪不是能++rp嘛2333。体验了一下玉函路隧道的恐怖效率。
睡觉的时候大概 11
点了吧?
Day 1
比赛日,抽到了2-119号,进场先敲缺省源,没什么人管。
XP系统实锤了,但是CPU是 i5 的,感觉海星
打开压缩包看看,嗯确实都需要密码(雾),哎这个software题怎么把所有数据都给出来了,是锅了?还在想要不要给监考报告这个事,后来想了想大概所有人都是这样的吧……就没管
发密码以后看题:
\(A\) 题……我没读错题吧?这怎么看怎么像经典题啊?我没做过就是了,还有暴力怎么又这么多分啊?
\(B\) 题……串串题,题面还这么长,我啥串串算法也不会,弃了弃了,题面都没有看完
\(C\) 题……啊我总算知道为什么样例文件夹里有这个题的所有数据了!感觉好像有点好玩的样子?不顾你确定这tm是个传统题?
随手打开 \(C\) 题的最后一个点……我的妈这是啥啊再见再见(
看看第一个点吧……输出文件 \(19,~361,~6853\) 啥的?我猜这是 \(19\) 的幂次?题目编号里有个 \(998244353\), 所以这是模意义下的快速幂?好了现在我有 \(4\) 分了真开心。
回头看 \(A\) 题去,\(O(n^2)\) 的暴力怎么有 \(60pts\)?我是不是真的看错题了?还有这数据范围为什么不卡 \(O(n^2 \log n)\) 啊差评。仔细看了两遍题意觉得确实没读错,于是就写了个枚举左右端点的暴力敲了上去, \(60pts\) 到手。由于大样例会爆掉我的数组,所以并不能测大样例。
然后看看还有个 \(k\) 很小的部分分,想了好久不知道怎么做,转去想如果 \(k~=~1\) 应该怎么办,发现还是不会,又觉得 \(60pts\) 差不多,于是就弃了。这时候还有三个半小时。
\(B\) 题直接没有做的欲望
开始玩 \(C\) 题。第一个子任务是 \(13\) 的幂次,嗯……第二个点可以快速幂……woc第三个点怎么指数这么大?想起来有个东西叫做扩展欧拉定理,但是我早把那玩意忘了啊emmmm。
尝试手推,推了 \(5 \min\) 突然发现因为每 \(\phi(p)\) 次是一个循环节,所以直接读入模 \(998244352\) 就好了。 \(12pts\) 到手
对于模数未知的点,写了个代码找到了输出的最大值是 \(1145....\) (我忘了是多少了,觉得模数一定离这个数很近,于是写了个枚举模数的程序挂机,但是大概是写挂了,反正跑到最后也没有跑出来。讲题时说模数是 \(1145141\),真 是 个 恶 臭 的 模 数 啊 ( 迫 真
那个 wa 的点猜到了是自然溢出,于是尝试在快速幂的各个地方不取模,然后发现并不能过样例,当时没有想到快速幂和暴力算在溢出的情况下得到的答案显然是不一样的嘤嘤嘤
于是我功能 \(1\) 就只有 \(12pts\) 了。此时还剩两个小时左右
然后去看功能 \(2\),看的一脸懵逼,这是个什么玩意啊emmmm。等了大概半个小时突然想起来 \(p\) 和 \(u\) 会不会都有自己的含义,想想 \(p\) 是…… prime
? 那也不对啊为什么 \(1\) 是个质数啊emm……等等,给出的是 \(2,~10\),也就是说求这个区间内的质数表?看下输出确实是这样。
然而我从一月份开始就再也没碰过数学了,线性筛什么的早忘了,记住个思想,手推吧……
过了数据, \(4pts\) 到手。
下面一个点……好像询问的区间是 \(1e6\) 级别的,之前好像做过一个这样的题,大概是用根号的素数筛后面的数?忘了,继续手推一下,发现用埃氏筛的话每个数只会被小于根号的数更新,所以筛到根号的素数就可以筛那个区间了,\(6pts\) 到手。
下面不会了,去看 \(u\) 的部分
既然 \(p\) 是 prime
,那我盲猜 \(u\) 是 \(\mu\)!
看下果然猜对了2333,然而我并不会线筛积性函数……手推吧。以前在luogu网课听到过大概有一个恒等式是对于质数 \(i\),有 \(f(i~\times~j)~=~f(i)~\times~f(j)\) 的?证明了一下好像是对的,于是写了一下过了数据。
对于下面那个测试点大概是和 prime
部分同样的做法,但是推了下埃氏筛的方法,最后写挂了没有调出来,于是这个部分只有 \(5pts\) 了……
下面 \(g\) 是啥啊?看不懂告辞告辞
离结束还有三分钟的时候发现电脑上没有扫雷真是差评,只能回头去检查一下代码。然后发现我 \(A\) 题给 std::nth_element
的比较函数的参数传得是 int
??woc幸好发现了要不然爆零了……
于是 day1 总得分 \(60~+~0~+~27~=~87pts\),SDrk59,很开心没有挂分。也很后悔 B 题明明有 10s 时限为什么不交个while (1) 上去
中午和 苏子鹤_Seven
以及 zzh
一起吃了金拱门,抨击了一下题目(雾
晚上当然是继续掉分啊,明明冲王者的人了这一放假掉到星耀三去了。
Day 2
进场看题,woc题面怎么都这么长啊……看了 \(A\) 题一会没看懂题,滚去看 \(B\),也没看懂,去看 \(C\) 了,蔡德仁?不可做还是没看懂题。剧终。
仔细看了看 \(A\) 题最终看明白了,然后想了想不会做,去看 \(B\) 了。
定睛一看题面好像不那么长?仔细分析一波明白了题目要干嘛,想了想是个 sb 贪心?大的尽可能带走大的?尝试证明无果。这个时候已经十点了,我手里依然一分没有,心态有点崩,果断去了个洗手间洗了五分钟的脸,回来决定大力对拍不证明了。用来对拍的贪心程序大概是 \(O(n^4)\) 的,因为枚举了之间选择的每个点看是否合法……好像和暴力一个分哎!
想了想好像枚举到选择一个点的的时候可以把它到根以及它子树的点染色,只有没有被染色的点才能被选到。这个染色可以树剖维护,所以这样的复杂度是……\(O(n^2 \log^2 n)\) ……告辞,这个也是暴力分。突然意识到如果暴力染色的话复杂度是 \(O(n^2)\) 的,于是拿到了 \(60pts\)。
链的部分分好像也是个 sb 分……直接分两边sort一下就好了,于是又拿到了 \(15pts\)。把问题转化成给定一个序列求每个位置的历史 mex
,发现好像不可做,而且剩下的时间拿不靠谱的 \(25\) 分不划算,于是就弃了。
回头去看 \(A\) 题,发现前两个点是大爆搜,写的有一点复杂,但还是过了样例。
后面两个点可以 \(O(n~\times~m^3)\) 的DP,当时脑子抽风没想到 \(O(n m^2)\) 的 \(50\) 分做法就很惨……。但是这个转移写的有点复杂,由于对题意还不是特别的理解,细节也记不住,转移写了很久。
调了一会后过了小样例,大样例依然不能跑。
然后感觉小样例十分不靠谱,于是就去对拍,拍着拍着发现 DP 做法 RE 了?调了好久不知道怎么 RE 的,然后猛然发现数据生成器写错了……
修好以后接着拍发现一拍就 wa,当时还剩 \(15 \min\),xtbl,并不能调出来,我甚至不能确定是我暴力写错了还是 DP 写错了。
最后 \(5 ~\min\) 急急忙忙写了个数据分治,这个题的得分在 \(0~\sim 40\) 之间徘徊,期望 \(20pts\)。
中午和 子谦。
还有 苏子鹤
去恒隆吃的饭,回来讲评已经完了,看了下榜果然 \(A\) 题 \(20pts\),大概也算没有挂分吧QAQ。
Day2 得分 \(20~+~75~+~0~=~95pts\),SDrk35。
下午去和中午吃饭的两个人疯玩到晚上十点,去唱了三个小时歌然后吃了顿晚饭,最后苦逼的 苏子鹤
因为出租车放不下车子只能自己骑回家qwq。
晚上QG成功让二追三真劲呐,这大概就是我两点睡觉的理由叭
好多人都退役了啊……我虽然 Round1 的排名能苟进 Round2,但是 NOIp 还是太烂了啊,烂到倒数第七……能不能苟进 Round2 真的不一定呐……
Day3
民间榜出来了,NOIp 成绩给我拉了好多后腿,算完标准分SD总成绩 rk100,显然苟不进二轮了呐……菜是原罪,继续努力叭qwq
来源:oschina
链接:https://my.oschina.net/u/4305447/blog/4317412