2022 CSP-J 游记

Day \(-\infty\)

在家里跟父母约定

只要csp-j一等奖,手机随你挑!

对于一个没有手机的初中生废物,这个约定显然勾引了我

刷题!

刷题!

再刷!

刷废……

Day \(-\infty + ?\)

发现每次刷初赛,分数都是\(60\)多,玄!(我爱初赛

算了,不刷了(似乎不太好),看小说吧

但是 \(Unluck\),被发现了……(挺痛的

刷题!

刷题!

再刷!

刷飞~~

Day 9.17

初赛前一天,肯定是留在学校的啦(我的作业……)

因为每次模拟测试基本都是\(80+\)的我,一点都慌(虽然我对着我们学校的大佬考试的桌子拜了10多分钟)

好好地\(sleep\),准备明天的比赛

Day 9.18

初赛当天,我们回了机房,拿了东西,顺便打了会\(game\)

这是,国豪跑进来,把我们赶了出来

于是,我和同学来到了考场,第一次见到金属探测的我感觉高级

一会休整,比赛就开始了(老师带小学生去厕所了,晚发了卷……)

前面做的很顺,来到第一道程序题(被卡住了),老样子不管它,坐后面的

发现宝藏!,最后程序填空题,第一道质因数分解,第二道,\(Bfs\)模板?

不管这么多,直接火速填完去检查

考完之后感觉分数线会很高,但是不管这么多,开网的电脑诱惑比这个大多了

Day 9.?

分数出来前一天,我还在吊着个心

不过总算好了点:\(78\)! 分数线才\(68.5\)?,有点小水

嘚瑟了几天的我,重新回到了复赛的备赛

刷了\(NOIP\)普及的题,有蓝题?(自闭

模拟赛也不是很理想(虽然没认真做

感觉我要\(die\)

但是我转念一想,不就是绿题和黄题嘛,有什么难得

于是我就保持着这样的心态到考试那一天

Day 10.?

2010\(CSP-J\)第三题表达式的值\(AC\)

Day 0

好消息,封校了,该开心还是伤心呢?

前一天,国豪开了网

我拼命复习\(RMQ\),\(LCA\),\(状压dp\),\(树状数组和线段树\)

事实证明这些普及都不会考……

6:20到学校门口集合”,有病吧,8:30考试,7:00到?留着看风景吗?

不管他了,睡觉先!

Day 1

于是我跟我们宿友说:“\(6:00\)钟叫我”

于是我\(6:18\)起……

“我以为你们开玩笑·,我就没叫你们”

好家伙,你宿友有考试了你不知道?

算了,我粗糙的整理一番,直接跑下楼,眼睛在冷风中半睁半闭,难受

到了那里,成为最后一名的感觉不错

但是\(7:00\)才走的大巴让我很无语

在车上,平分了零食

我吃了4根绿肠,祝我考高点

在考场门前,和大家聊了会,就进入了考场(我旁边的认识!

T1:乘方

真的水,开个\(long\ long\)

如果超过了1e9,那就输出-1,否则输出就行(没想到有个点竟然是\(1^{10^9}\),把我卡了一个点)

T2:解密

应该是我想的最久的一道题了

首先又题意得,可以得出一个方程组

\[\left\{\begin{aligned} n_i &= p_i*q_i &&1式\\ e_i*d_i&=(p_i-1)(q_i-1)+1&&2式 \end{aligned}\right. \]

我们将二式拆一下

\[\begin{aligned} e_i*d_i=p_i*q_i-p_i-q_i+2&&3式 \end{aligned} \]

发现一式和三式都有而二次项的$$p_i*q_i$$,我们不希望有二次项,于是我们用一式减三式

\[\begin{aligned} n-e_i*d_i&=p-i+q_i-2\\ n-e_i*d-i+2&=p_i+q_i\\ p_i+q_i&=m \end{aligned} \]

于是我们就可以得到一个方程组

\[\left\{\begin{aligned} p_i+q_i = m\\ p_i*q_i=n \end{aligned}\right. \]

于是我们就可以枚举了,枚举加法会好一点

需要枚举\(\frac{m}{2}\)次,总共时间复杂度是\(O(Q\frac{m}{2})\),显然时间复杂度承受不住

\(\frac{m}{2}\)次的枚举次数显然太多,我们要优化下

很容易想到二分,于是我们就要证单调性

设有两个数\(a,b\),显然我们要证明\(a*b<(a+1)*(b-1)\)什么时候成立

我们拆一下右边

\[\begin{aligned} &(a+1)*(b-1)\\ &=a*b-a+b-1\\ &=a*b-(a-b+1) \end{aligned} \]

于是只要

\[\begin{aligned} a-b+1<=0\\ a+1<=b \end{aligned} \]

单调性成立

于是我们只要将\(a\)的枚举范围限制在\(\frac{m}{2}\)二分即可

总时间复杂度是\(O(Qlog\frac{m}{2})\),可以\(AC\)这题

T3:逻辑表达式

考场上看到这题开心的不得了,从而看错了几次题目

为什么?

这不是和\(CSP2020T3\)差不多一样吗?

于是我就将他转后缀,建树,然后一通乱过了大样例(我考试前一周才做过……)

T4:上升点列

考场上过了第三题,高兴过度,导致没有看对题

直接打了个暴搜(还搜错了),就去检查了(睡梦中检查的?

这里说下正解吧(我考场想出来了,没时间写了,第三题看错题耽误好久

显然是\(dp\)

我们定义\(dp\)数组含义为

\[dp_{ij}:前i个点用了j个点的最大点数(排了序) \]

状态转移方程为

\[dp{ij}=\max{dp_{km}+m+1,dp_{ij}}(m=dis(i,j)-1) \]

最后统计答案的时候加上\(k-j\)就可

期望得分

\(\mathcal{100+100+100+0=300}\)

各大平台估分

\(\mathcal{100+70+100+5=275}\)基本是稳的了

\(Day\ ?\)

数据出来了,教练说有个同学\(270\)分的变成了\(200\)分,我从那个时候心就跳了,说那个同学第二题\(0\)

我等不及了,直接找了台开网的电脑,测了我第二题

\(0\)分?

\(fack\)!!!!

我对比了一下我满分的代码,将二分边界的\(m/2-1\)改成\(m/2+1\)

\(100\)分?

\(fack\)!!!!

毫无疑问,一等奖没了

我哭了好几天

我爱死这二分,爱死\(CSP\)出的数据(每个数据都有\(p=q\)的点?一分都不给?)

真实成绩:\(\mathcal{100+0+100+10=210}\)

反思

换个角度想,这次出的问题明显是心态问题,不应该高兴过度,我应该想够用就行

因为你不知道你前几题到底是不是全对

第一次\(CSP\)之旅,没了

不管他了,争取明年\(J组满分\)\(S进复赛!\)

\(Day\) \(+\infty\)

不去想了,奋力战斗!

惜哉!

posted @ 2023-01-06 14:21  Phrvth  阅读(102)  评论(0)    收藏  举报