2022CSP-S游记
敬伟大的
在今年,在今天,我才终于明白巴巴托斯大人的那句话:
前天得知消息时,心如同一颗行星陨落下来。
「陕西(特派员声称取消)」
天要塌了!
这是我内心最大的感受,但事情终于在昨天,也就是10月28号,得到了转机。
S组恢复,J组依然取消。尚可接受。
但我S组已然做好抱绫的准备,故次参赛,有何意义呢?
还是得上啊,既然天要亡我未遂,那就上!
好吧好吧,经过赛前长达5小时(毛重,含摸鱼)的复习,迎来了真正的检验。
赛时记录
到考场差不多两点十五,坐了半个小时车头还微微有点晕,不过上到四楼,差不多恢复了。然S组是两点半开考,六点半才结束,但幸好鄙人早上睡到九点,精力也还算充沛。一上机子先打hello world确认没啥大毛病就接着打了快读快写模板,指定能用得上。
接着就开始了…
浏览4道题过后,发现T1T3都是图论,T2貌似是博弈论,心头一紧:我考前没复习图啊,别说最短路算法,就连存图的链式前向星、邻接表、邻接矩阵 都忘了,博弈论我在模拟赛里也写得不咋好,T4就更不用说了。但好在,我前三题都看懂了,这是后话。
先从第一题入手吧。
想了有十分钟,我想到了一种存图方法,就是如果a[u][v]=1;a[v][u]=1;,但这样内存太大了,(实测二中机房电脑
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;
}
这样的方法,还算可操作。但我只会处理
花了一个小时,写倒是写出来了,样例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多号人临时准备赛场,我,如何能负
(全体起立)
在OI这一人与冰冷机器的博弈中,
有你,更暖。