一方糖一的2020CSP-S游记
作者:互联网
Day 0
中午从济南出发,因为疫情原因,只能自驾。
坐了3个小时车(听了3个小时歌),到了日照,母后的老同学请我们吃饭,但是因为嫌吵,我就先行告退回酒店了
本来想复习一下各类算法的,但是想想明天估计也就是暴力暴力暴力,索性玩了3个小时中国式家长,然后到头闷睡
Day 1
因为S组是下午考,所以早上一直睡到十点(酒店的床太软了,睡得腰疼
起来之后收拾收拾东西,自己一个人去海边转了一圈,听听大海的声音,吹吹海风,默念CSP2020 rp++
中午还是母后的老同学请吃的饭,差不多1点半,到了考场
进去考场之后,本来该有20分钟的试机时间的,但是我们的监考老师也就给了10分钟左右,刚打完快读和头文件就控屏了
然后发压缩包解压密码的时候,发错了好几次,导致我们晚了5分钟才看到题面
考试实况
T1 无脑模拟+计算(话说真的是给新疆人做的吗
发现儒略历比较好处理,因为没有400年一闰的规定,只要满四年就一闰
然后发现4713 BC是闰年,那么从4713 BC到1582都是“闰平平平”的结构
算出4年轮回是1461天,先算出来几个轮回,然后-4713+轮回数*4
再处理在第一年(闰)还是二三四年(平)十二个月份依次减掉对应的天数,算出日期
因为后面的格里高利历不好处理,先滚去看T2
期望得分:40pts
T2 模拟
要求把每一个动物的编号(十进制转化为二进制)若二进制的\(p\)位为\(1\),那么需要买第\(q\)种饲料
前两个数据点比较小,我想到用桶处理饲料买了还是没买,\(2^k\)枚举每一种动物可不可以养的思路
先把动物园里已经有的动物二进制处理出来,然后按照给定的\(p\)标记给定的\(q\)
枚举\([0,2^k)\)所有的编号,处理每一个十进制编号为二进制,然后按照给定的\(p\),查询\(q\),如果对于所有的\(p\),\(q\)都为真,那么ans++
这样统计出来最多可以养多少动物,然后减去已经养的动物数,就是答案
数据范围忘了,我数组好像开小了???
期望得分:20-40pts
T3 模拟
T3读题花了比较长的时间,发现对于编号为\(i\)的函数,要么是\(j\)加\(v\)(1类),要么是所有乘\(v\)(2类)或者是其他一堆编号为\(C_j\)的函数组合起来(3类)
那么先开结构体,根据输入处理出每个函数的类型,如果是1类,那么记录\(j,v\),2类记录\(v\),3类记录组合函数的所有名字
然后写一个递归函数work( ),调用输入的编号为\(x\)的函数,对于1,2类直接操作,3类就把每个包含的函数编号都work( )一遍,最终一定会递归完
然后暴力输出结果就行了,记得开ll,取模
期望得分:20pts
T4 疑似博弈论
发现\(n=3\)时,答案只有两个:1或3
要么是一开始的最强蛇吃了两个比它弱的蛇,要么是最强蛇不吃,直接结束(如果吃了最弱,下回合会被一开始的次强蛇吃掉)
那么很好判断了,先开结构体,存进去每个蛇的编号和战斗力,然后按题目要求排个序
看看最强蛇吃了最弱蛇之后,会不会被次强蛇吃掉,如果它吃了最弱蛇就会被次强蛇吃,输出3,如果都能吃,输出1
\(n=10\)似乎可以爆搜处理一下吃蛇选择,但是似乎很麻烦,就没有打,回去看看T1的格里高利历部分分
期望得分:20pts
滚回T1
处理1582年10月5日之后的情况(我算出来从4713 BC到1582.10.4总天数)
用儒略日减去总天数,看看还剩几天,然后暴力判断是在1582年的10月还是11月还是12月
不在1582年,减去1582.10.14到年底剩下的天数,下一次从1583.1.1开始计算
然后先按照400年大轮回算,1583-后是平闰平平,处理出400年的规律
然后处理出100年的规律,再处理出4年的规律,最后确定年份,for(1 to 12)确定月份和日期
我写到这的时候,考试已经结束了。但是没有调出来,依然40pts,而且导致T2,T3没有检查(希望没有写挂掉,希望样例有强度)
晚上坐车滚回济南,没啥好说的
估计总分:40-120pts,不知道有没有省二等奖
@T1出题人
这样的题目真是优秀,希望您母亲在天上翱翔的时候,没淋着雨
Day 2
还想Day 2翻盘?不存在的!
——CCF 中国计算机学会
说实话,晚上做梦的时候梦见全挂了然后爆零,直接退役/kk
早上起来,写了这篇游记
标签:10,处理,2020CSP,然后,1582,编号,游记,一方,Day 来源: https://www.cnblogs.com/zaza-zt/p/13943411.html