• 一铭君一的CSP2020打铁记


    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

    2020.11.10 民间数据自测 0pts,爆零纯属代码能力不行,没什么好抱怨的

    2020.11.18 CCF官方数据测试,实际得分 0pts

    T2 模拟

    要求把每一个动物的编号(十进制转化为二进制)若二进制的(p)位为(1),那么需要买第(q)种饲料

    前两个数据点比较小,我想到用桶处理饲料买了还是没买,(2^k)枚举每一种动物可不可以养的思路

    先把动物园里已经有的动物二进制处理出来,然后按照给定的(p)标记给定的(q)

    枚举([0,2^k))所有的编号,处理每一个十进制编号为二进制,然后按照给定的(p),查询(q),如果对于所有的(p)(q)都为真,那么ans++

    这样统计出来最多可以养多少动物,然后减去已经养的动物数,就是答案

    期望得分:40pts

    2020.11.10 民间数据自测,实际得分 40pts

    2020.11.18 CCF官方数据测试:实际得分 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

    2020.11.10 民间数据自测 0pts,(模数998244353看成了98244353,真想抽自己一巴掌)

    2020.11.18 CCF官方数据测试 0pts

    T4 疑似博弈论

    发现(n=3)时,答案只有两个:1或3

    要么是一开始的最强蛇吃了两个比它弱的蛇,要么是最强蛇不吃,直接结束(如果吃了最弱,下回合会被一开始的次强蛇吃掉)

    那么很好判断了,先开结构体,存进去每个蛇的编号和战斗力,然后按题目要求排个序

    看看最强蛇吃了最弱蛇之后,会不会被次强蛇吃掉,如果它吃了最弱蛇就会被次强蛇吃,输出3,如果都能吃,输出1

    (n=10)似乎可以爆搜处理一下吃蛇选择,但是似乎很麻烦,就没有打,回去看看T1的格里高利历部分分

    期望得分:10pts

    2020.11.10 民间数据自测 10pts

    2020.11.18 CCF官方数据测试 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)确定月份和日期

    考试结束的时候还没有调出来,并且导致T2,T3没有检查(实际上T3像前面说的,真的挂了20opts)

    晚上坐车滚回济南,没啥好说的

    估计最高得分:110pts

    自测总分 50pts,T1挂掉40pts,T3挂掉20pts

    实际得分 by CCF:T1 0pts+T2 40pts+T3 0(20)pts+T4 20pts=60(80)pts 省三(二)等奖

    如果拿到T3的暴力20分,就省二了(懊悔面具+痛苦面具+暴风哭泣求安慰)

    @T1出题人
    这样的题目真是优秀,希望您母亲在天上翱翔的时候,没淋着雨

    Day 2

    还想Day 2翻盘?不存在的!
    ——CCF 中国计算机学会

    说实话,晚上做梦的时候梦见全挂了然后爆零,直接退役/kk,Day2早上起来写了这篇游记

    总结一下吧,比赛的时候细致真的很重要。另外看清楚题目要求,想不出正解抓紧打暴力

    不要对自己代码能力太自信,比如这次的T1,没有调出来。如果打day by day模拟+离线处理的话,有80pts,就算在线day by day,也有20pts

    如果不回去调T1,假如检查到T3的话,也许会发现模数98244357搞错了,还能避免20(35)pts的挂分

    可是历史老师说过:

    过去的,都是历史,回不去的……

    还有机会,所以所以所以下次NOIp,要细致啊,要给自己的OI生涯,画上一个圆满的句号

    希望能抱着省一等奖光荣的退役,NOIp RP++

  • 相关阅读:
    JVM系列一:虚拟机内存区域
    【转载】 mybatis入门系列四之动态SQL
    mybatis入门系列三之类型转换器
    mybatis入门系列二之输入与输出参数
    mybatis入门系列一之创建mybatis程序
    SpringBoot基础系列一
    如何阅读W3C标准.md
    wget下载豆瓣图片失败
    js中调用worker工程化结构
    linux下fastboot工具使用异常
  • 原文地址:https://www.cnblogs.com/zaza-zt/p/13943411.html
Copyright © 2020-2023  润新知