2021 CSP-S 游记

2021CSP-S游记

从国庆过后就开始停课,确实面对的压力和挑战很大。

这段时间真的就是完全没有去想文化课那边的事。

越接近考试时间,模拟赛就越密集,最近大家都在互测。

蛮清楚自己的水平的,而且偶尔还是能考得不错,但是因为一些常见错误爆分的情况也不少。

在考试前一天晚上 10:4010:4010:40 就早早上床,直接睡了个爽。

下午试机,我那个 555 机房配置超级差,323232 位不说,VScode/MinGW9.3.0\text{VScode}/\text{MinGW9.3.0}VScode/MinGW9.3.0 都用不了,虽然老师说会去交涉,但也有可能因为各种因素就这样了。所以还是蛮担心的。

考试当天中午也放的挺早,老实说下午我的状态至少不是迷迷糊糊的那种。

但是之前模拟赛大部分都是早上,后面才改成下午考,我能很明显感受到自己早上的思维状态要优于下午的,虽然我也不知道为啥。

因此考试的时候还是有点点没把握的。

心里挺矛盾的,不想再像上次 2h2h2h 做大模拟,又不想第一题都想不出来。

最后——怀着模拟赛就像平时一样打的心,我进入了考场。


考试开始,我先花了十分钟左右通读了一遍题目,第四题晃晃就过了(因为我清楚自己不一定能做到第四题)。

最有感觉的应该算是第二题了,但是我还是先从第一题开始的,因为我觉得第一题应该是签到类型的吧,认真想想就出来了。。。然而——


T1

再次细读了一遍题目,明白大意后,暴力的 40′40'40 就出来的:枚举国内机场的廊桥数量,然后模拟一遍。

但是我还没忙着打上去。

接着就是想正解,很明显我应该是要优化这个模拟过程的,嗯?有点贪心的意思了。

我的想法是如何从 i−1i-1i1 个转移到 iii 个,的确没想到用桶来装廊桥,所以就卡住了。

到最后我怀疑是不是这个思路有问题,我就开始手玩样例,自己也弄了几组小样例。

好巧不巧这些小样例都是有凸性的,我就以为这是道三分的题目。

迅速就码完了,连大样例也过了。

耗时四十分钟左右。

后面写 T2T_2T2 的时候,想了想先跑回来写了个暴力程序就开始对拍。结果对拍到最后都没拍出错,我就以为自己是正解了。

谁想到根本就是个错解。最后只能听天由命,看官方数据怎么出了。

害,我应该写两段式把暴力嵌进去,分就能骗高一点。


T2

再次细读一遍题后,明显就是个 dpdpdp 。而且状态和转移非常好想。

我怀疑了一下,莫非 T1,T2T1,T2T1,T2 放反了??

但我觉得不可能,所以我就再读了一遍题目,终于在不合法的举例中明白了不能两边都放 ∗*

顿时感觉难度上来了,顺次转移的 dpdpdp 似乎就不起作用了,根本记录不了前面是否放了 ∗* 的状况,无法转移。

但我坚信,这一定是个 dpdpdp 题。

然后我就想到强制 l,rl,rl,r 括号匹配,然后枚举 l+1l+1l+1 开始的左边连续一段 ∗*r−1r-1r1 开始的右边连续一段 ∗*,在这之前还预处理了一下 gl,rg_{l,r}gl,r[l,r][l,r][l,r] 段能否全为 ∗* ,作为系数。

这就是个区间 dpdpdp ,目前已经是 n3n^3n3 了。

迅速码完,测试样例:第一组过了,第二组呃……就挂了,看一看算少了。

这时我再次回到题目,顺便看看第一组样例解释。

仔细想了想,发现自己忘了 ()**() 的情况,也就是 l,rl,rl,r 虽然是左右括号但不一定要匹配。

具体操作是我得枚举 k,tk,tk,t 分别与 l,rl,rl,r 括号匹配,(k,t)(k,t)(k,t) 中间就得是连续的 ∗*,但这已经是 n4n^4n4 了。

显然后面需要优化,但是我想还是先把暴力转移码出来再说,至少得保证自己是对的,要能过大样例,超时都是其次。

挺好写的,再测试样例,然后第二组还是不对——又大了。

后面就开始一堆乱改,修了几个字符敲错,枚举长度少了点的锅。

测试样例,还是第二组!!!

我就有点无语了(⊙﹏⊙)。

这时候已经过去一个小时二十分钟左右了。

我后面两道题还没有开。我就先放了一下 T2T_2T2


T3

我感觉是有点偏向结论后的模拟构造类型的,因为没有想到选了一个端点后再选一个,相当于中间某两个字符连续。

看了一下部分分,发现指数级的只有 28′28'28,还有特殊性质的 12′12'12,当时简单想了下特殊性质,因为考虑漏掉了一种情况,所以我以为非常简单,权衡一下我应该能拿到 40′40'40

迅速码完调了一些小错误,大小样例均过。

时间又过去了二十分钟。

最后我简单看了下自己的暴力过程,发现对于数据而言,有了剪枝,自己的程序应该是能跑过 40′40'40 的指数部分分。

所以本题我的预估是 52′52'52

到这里我看了眼 T1T_1T1 的对拍还在继续,所以此时在考场上的我,以为已经拿到了 152′152'152


T4

细读一遍题目后又读了一遍,我发现毫无思路。

果断看部分分,先思考了一下指数级别的暴力,蛮好打的,但是我发现还有多组数据的时间复杂度,一下子乘起来就还是会超时。

我就看 k=2k=2k=2 的部分,发现就是黑白染色,但当时没有联想到网络流的最小割。

脑子已经有点发热了,我就迅速写了个双向 bfs\text{bfs}bfs,调了一下,时间又过去了半个小时左右。

小样例又能过,大样例第一组就挂了。

随便一想就把自己 hack\text{hack}hack 掉了。

我马上明白这道题自己应该是拿不到一分了。

果断弃掉,回到 T2T_2T2 的调试。


T2

此时时间大概是过去了两个小时二十分钟左右。

我就开始分布调试代码,输出中间结果,然后人脑模拟第二个样例。

发现有一个中间转移的是错的,我就单独抠出来将样例缩小跑。

因为长度为 101010 人脑模拟起来就已经很吃力了。

我就缩小到了 888 再缩小到 777

发现一旦超过 555 就会算出问题,但是当时没仔细管是算多还是算少。

突然我就反应过来,kkk 的枚举会算重。

我枚举了 k,tk,tk,t 必须强制 l−k,t−rl-k,t-rlk,tr 强制匹配,为了解决这个情况我就再定义了一个二位数组,强制匹配和不要求强制匹配之间互相转移。

小调了一下,大小样例全过,此时时间大概过去了三小时不到。

n4n^4n4 只有稳的 65′65'65,考虑优化。

明显我能感觉到是前缀和的优化,但是因为我自己 ggg 的限制,就影响了我的前缀和优化,没有想到优化的实现。只能遗憾放弃。

后面又花了半个小时左右在 T4T_4T4 上无谓的挣扎,真的一点分都拿不到。


检查

此时的时间还剩下最后半个小时,我的四道题基本上已经做完,预估分在 205205205 左右。

我犹豫了一下是继续思考四道题进一步拿分,还是点到为止开始检查。

我想起了吴老师前一天晚上说可以莽一点,又想起了吴老师反复叮嘱低级错误的检查。

最后我选择了检查。

将文件输入输出注释掉,本地测试小样例,先保证中间调试结果都已经注释了。

然后我静态查错了所有代码。

接着看了一下 #define int long long 和 数组范围是否开小。

因为很显然的没有大空间的使用,我就没有计算空间复杂度。

紧接着解开文件输入的注释,本次测试大样例。都没有问题。

最后解开文件输出的注释,再次测试大样例。

问题出现了——T2T_2T2 一开始就直接输出 000 了,没有文件输出。

我就看了一下写的 freopen

原来我将输出的 stdout 错写成了 stdin

迅速改正,大样例再次过掉。对着这个错误我再次检查了其余代码的 freopen 问题。

我又打开了题目上面的文件名,因为不能直接复制,我害怕自己敲错。

就又对着一个字符一个字符的检查了一遍。

我疯狂 ctrl+s ,关掉 dev。在自己准考证所在的文件夹里再次打开所有题目的代码,再次文件运行,看 .out 是否成功。

做完这些后只剩寥寥无几的时间。

没一会,“保持安静”,我的屏幕不再能动,CSP-S 就这么拉下了帷幕。

出考场后,我很庆幸自己检查了代码,保全了 T2T_2T2 的暴力。

非常不想听,却又听到了别人的讨论,听到他们 T1T_1T1 的 “线段树二分“,”是贪心吧。” 我就意识到自己的 T1T_1T1 假掉了。

然后尘埃落定,我无力回天。


总结

老实说我大部分时间都在前两题,尤其是第二题。

因为考试前我就做好了骗三四题分然后做一二题的准备。

如果我能很快做出一二题,还有时间我就再慢慢想后面的难题。

但是今年确实前两题,我都没有做出来。

后面大家讨论后,第四题网络流我也没有复习,就算想到了我可能也得调一会。第三题,我如果能多手玩几组认真想想,还是有可能做出来的。

但因为自己心态上就是想的骗三四题的分,主要先把一二题过掉,所以在考场上三四题的思维深度投入不及一二题。

虽然吴老师一再强调这只能算得上全真模拟赛,但是还是应该好好反思。短时间内思维是不可能有质的飞跃的,我能做的就是把自己能拿到的分数紧紧抓住。

所以对于本场表现,我对自己能够在最后检查出致命细节错误;也没有出现平时模拟赛过了一半代码敲完才发现自己题目读错的悲剧,反而通过样例和题面迅速理解题意;在第二题第一次没调出来也没有影响心态,相信自己后面能成功调出来(可能是平时调试多了,已经很相信自己分布调试的能力了(●’◡’●)),这几点很满意。

希望下一次 NOIP\text{NOIP}NOIP 自己能正常发挥,全力以赴,至少得超过一年前的自己吧!!


你再快都有比你快的,你再慢也有比你慢的!——《三体》

前进!前进!不择手段的前进! ——《三体》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

欧拉函数(简单介绍+例题)

Acwing视频讲解 欧拉函数:正整数n,欧拉函数是小于n的正整数中与n互质的数的数目 Np1a1 * p1a2 * p1a3 * …* p1ak 如果pj是i的最小质因子 红色区域一样 经推导得:phi[i * pj] phi[i] * pj 如果pj不是i的最小质因子 经推导:phi[…

P5303 [GXOI/GZOI2019]逼死强迫症(斐波拉契、矩阵乘法)

解析 非常妙的一个题,感受到了斐波拉契优美的归纳性质。 首先,不难发现只要两个1*1的位置固定,中间的摆法就固定了,而两边的方案都是经典的斐波拉契数列(设为 fif_ifi​)。 那么枚举中间的间隔再枚举左边…

程序员过关斩将--你的面向接口编程一定对吗?

菜菜哥,出大事啦怎么了,你和男票分手了?很正常,谁让你男票是产经经理呢不是啦,是我做的一个小游戏,需求又变了,程序我快改不动了说来让我欢乐一下?菜菜哥,咱两还能不能好…

[2021 CSP-S提高组] 题解(廊桥分配+括号序列+回文+交通规划)

2021 CSP-S 题解廊桥分配括号序列回文交通规划配合👉CSP-S游记 食用更佳哦~ 【雷】:只是在民间数据过了,不保证一定正确。仅供参考!!! 【雷】:只是在民间数据过了,不保证一定正确。…

P1247 取火柴游戏

P1247 取火柴游戏 题意: 有n堆火柴,两个人轮流操作,每次只能在从一堆中取若干火柴,拿走最后一根火柴的为胜者,给你一个状态,问先手是赢是输 题解: 很经典的nim博弈,结论大家应该…

Codeforces:779(div2)

前言 solve 4 rnk247 占了罚时的便宜。 CF不占罚时便宜就会被罚时占便宜 感觉这场似乎都是性质题,一眼看出性质就秒了,看不出就很难做出来了。 C似乎卡了很多人。但我做起来还好。 D2做不出来有些懊恼。 E是妙题。 题目 A 水题,保证male…

我们为什么要搞长沙.NET技术社区(4)

我们为什么要搞长沙.NET技术社区(4)邹溪源,2019年3月7日Ps:文中的.NET 包括且不限定于传统.NET Framework技术和.NET Core技术。1. 楔子昨天(2019年3月6日)晚餐时间,有幸得到长沙技术圈资深.NET开发者出生…

P1290 欧几里德的游戏

P1290 欧几里德的游戏 题意: 给定两个正整数 M 和 N,从 Stan 开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数不能小于 0。然后是 Ollie进行同样的操作,直到一个人得到0&#…

【无码专区3】乘法表的解密破译

因为只有std,没有自我实现,所以是无码专区 problem 给定一个 qqq 进制的乘法表,每个字符代表着 0∼p−10\sim p-10∼p−1 不同的数字。 求每个字符代表的数字。保证有解。 \timesABCDACDBBDCBABBBBBBBBBCDCBBDBBCDBABBBCBD i.e. CD\text{C…

CF1553H XOR and Distance (Trie)

解析 有的时候,看起来是暴力的东西再稍微想想性质就是正解了。 本题有两种做法,一种使用了trie树,一种没有。但本质是一样的,只是trie树把我们的所求显性的表达了出来。 考虑trie树暴力怎么做。 对于一个特定的 xxx 走到一个结…

C#机器学习之判断日报是否合格

原文作者:心莱科技肖鑫简单来说机器学习的核心步骤在于“获取学习数据;选择机器算法;定型模型;评估模型,预测模型结果”,下面本人就以判断日报内容是否合格为例为大家简单的阐述一下C#的机器学习。第一步&a…

【无码专区4】幸运数字4(折半搜索+计数+结论)

因为只有std,没有自我实现,所以是无码专区 主要是为了训练思维能力 solution才是dls正解,但是因为只有潦草几句,所以大部分会有我自己基于正解上面的算法实现过程,可能选择的算法跟std中dls的实现不太一样。 std可能…

P1288 取数游戏II

P1288 取数游戏II 题意: 一个环,由边权,硬币一开始在一个点上,两个人轮流操作,每次操作向左或右移动,每次移动必须将边权减少到非负整数,如果原本是0则不能走,当不能走动时&#x…

CF1616F Tricolor Triangles(构造、高斯消元)

解析 关键性质:三元环合法等价于边权和模3等于0。 还有一个常识:三元环的级别是O(mm)O(m\sqrt m)O(mm​)。 证明: 三个点度数都大于 m\sqrt mm​ 的点不超过Cm3mmC_{\sqrt m}^3m\sqrt mCm​3​mm​ 个。 如果含有度数小于m\sqrt mm​ 的点&am…

SignalR2结合ujtopo实现拓扑图动态变化

上一篇文章基于jTopo的拓扑图设计工具库ujtopo,介绍了拓扑设计工具,这一篇我们使用SignalR2结合ujtopo实现拓扑图的动态变化。仅仅作为演示,之前的文章SignalR2简易数据看板演示,用一个小的示例演示了SignalR作为数据看板的用法&a…

树的同构模板题(法1.最小表示法+法2.树哈希)

树的同构problemsolutioncodesolutioncodeproblem 模板题 solution Ⅰ. 最小表示法 将树转化为 0/10/10/1 括号序列:从根开始 dfs\text{dfs}dfs,000 就往下遍历一个儿子,111 就返回,构成一个 2n2\times n2n 的括号序列。 显然…

CF917B MADMAX

CF917B MADMAX 题意: Alice和Bob有一个n个点m条边的DAG,每条边上有一个小写英文字母表示权值,Alice和Bob每人有一个棋子,每个人放在一个节点上(可以放在同一个节点上)。 第一轮Alice可以沿一条边把棋子移…

CF1534F:Falling Sand(tarjan、贪心、dp)

解析 本题做的过程大概是:到了正解门口决定回头,绕了地球一圈最后从另一边走到正解了… 我的分析: 首先 easy version 很简单,如果从一列最大值可以走到另一列最大值,那么后者就没用了。缩完点所有的零度点就是答案。…

Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)

来源:https://www.cnblogs.com/7tiny/p/10493805.html【前言】Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterf…

CF464E The Classic Problem(主席树+哈希+最短路)

CF464E The Classic Problemproblemsolutioncodeproblem 题目链接 solution 经典题。 本题很特别的是每条边的边权都是 222 的幂,而且数据读入的是指数。 所以可以将路径权值看作一个二进制串,每加一条边就是对应二进制位 111,当然会有相…