2022CSP-S游记

· · 个人记录

敬伟大的SN!!

在今年,在今天,我才终于明白巴巴托斯大人的那句话:

\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \large\text{风向是会转变的}

前天得知消息时,心如同一颗行星陨落下来。

「陕西(特派员声称取消)」

天要塌了!

这是我内心最大的感受,但事情终于在昨天,也就是10月28号,得到了转机。

S组恢复,J组依然取消。尚可接受。

但我S组已然做好抱绫的准备,故次参赛,有何意义呢?

还是得上啊,既然天要亡我未遂,那就上!

\texttt{「总会有地上的生灵,敢于直面CSP-S的威光」}

好吧好吧,经过赛前长达5小时(毛重,含摸鱼)的复习,迎来了真正的检验。

赛时记录

到考场差不多两点十五,坐了半个小时车头还微微有点晕,不过上到四楼,差不多恢复了。然S组是两点半开考,六点半才结束,但幸好鄙人早上睡到九点,精力也还算充沛。一上机子先打hello world确认没啥大毛病就接着打了快读快写模板,指定能用得上。

接着就开始了…

浏览4道题过后,发现T1T3都是图论,T2貌似是博弈论,心头一紧:我考前没复习图啊,别说最短路算法,就连存图的链式前向星、邻接表、邻接矩阵 都忘了,博弈论我在模拟赛里也写得不咋好,T4就更不用说了。但好在,我前三题都看懂了,这是后话。

先从第一题入手吧。

想了有十分钟,我想到了一种存图方法,就是如果uv之间有条无向边,就直接a[u][v]=1;a[v][u]=1;,但这样内存太大了,(实测二中机房电脑100000 \times 100000的int数组开不开),于是我又优化了一下,引入了一个cnt数组,cnt[n]存储由n出发有多少条边,接下来就有了:

int n;
int a[10010][10010];
int u,v;
int cnt[10010];
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
    scanf("%d%d",&u,&v);
    cnt[u]++;
    cnt[v]++;
    a[u][cnt[u]]=v;
    a[v][cnt[v]]=u;
}

这样的方法,还算可操作。但我只会处理k=0的情况,45pts就45pts吧,剩下的不要也罢,有分就行!

花了一个小时,写倒是写出来了,样例2也过了。看来,这次必定能成功啊!(盲目)应该能到30pts

接下来是T2。

先看数据范围,我本来想扣那两个特殊限制,但端详片刻,想到一种贪心策略:如果小L先选,小Q后走,若小L选了x,那小Q必然会选C(x,l2至r2)中最小的,所以,在小L选择时,他必须在纵坐标为l1至r1中选一列,且这一列中,横坐标为l2至r2的C(x,y)的最小值必须是列l1至r1里最大的,然后ans就是这一列里,l2至r2区间的最小值。也不知道对不对,30分钟搞完,样例1,2也都过了,我用文件操作测大样例时因为数组开太大就炸了,也就只能这样了。。算50pts把

最后90分钟:速通T3

乍一看标题:Galaxy?这不是三星手机吗?还是甚么星战,虫洞,让我想起张老师让我们看的电影星际穿越,这里看起来也挺像物理电学那玩意,挺带劲。存图,这次是有向图,又会有边的修改,我就把T1时想到的两种思路联结起来,也就是在上文代码的基础上,再引入一个sit数组,sit[i][j]表示从i结点到j结点边的状态,1为联通,0为不存在,-1为已损坏,便有了:

int n;
int a[10010][10010];
int u,v;
int cnt[10010];
int sit[10010][10010];
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
    scanf("%d%d",&u,&v);
    cnt[u]++;
    a[u][cnt[u]]=v;
   sit[u][v]=1;
}

然后有q次操作,4种操作,很好实现。难点就在判断是否可以实现反击,第一种情况还好解决,扫一遍所有结点再用个计数器判断是否都只有一个就行,到第二个把我难住了:

而且要求每个据点都能反击才算成功。

我原本想的是用深搜从所有结点出发,走一遍vis[i]++,如果碰到vis[i]=1的,就是环,但要涉及回溯,起码有4个参数,还是咕了。

突然,又想到,既然已经判断好现在所有据点都有且仅有一条从它出发的边(虫洞),那我只需判断有几条到它结束的边就行,比较简单,且4个样例都过了,速度还很快(多亏了快读),感觉是正解,再不济就算80pts。

此时已经到6点10分。

停笔。把前三道题都重新看过一遍,修改一些小问题,给T1T2加上return 0,给T3的freopen去掉注释,才放下我紧张的心。

再次测试样例,确保准确无误;

再次确认long long和%lld;

以及桌面的文件夹是否都按照要求去放。

终于结束。

紧张准备了3个月的2022CSP,终于缓缓落下帷幕。

自我感觉能到160pts,保守一点30pts(估分)

算是比较满意吧,期待下个月4号的成绩吧

抒情阶段

昨天6点半急忙出校门做核酸时,细细想想,我这3个月来,耽误的whk(文化课)也不少了,起码有40个课时,算晚自习。不敢想啊不敢想,越是这样我压力越大。

何苦?

想去,还是为了自己的 心 。

心之所向,抛弃一切(最好是还能捡回来一些),又何妨?

既然那么多的朋友,老师都给我鼓励(放我旷课),我,如何能负

陕西OI组委会头顶如此之压力,艰难地为我们600多号人临时准备赛场,我,如何能负

(全体起立)\huge\text{敬伟大的SN!!}

在OI这一人与冰冷机器的博弈中,

有你,更暖。