NKOJ C2153「迎新春,贺新年,LJ24祝大家新年快乐」赛后总结帖by TangH

迎新春,贺新年,LJ24祝大家新年快乐

赛后谢罪反思

LJ24TangHaoLong「唐 浩滝」


Global

        Igoodvegetablea

        LJ24新春赛,实则是冬令营状压dp完结小测。OI赛制,4t3h,每题有三次提交机会


Task A「骑士」

        Lstg:新春送分题

        签到题,棋盘模型裸题,需要注意以下几点:

        ·(i,j)位置的棋子和(i-1,j-2),(i-1,j+2),(i-2,j-1),(i-2,j+1)冲突

        ·由于攻击范围有两行,需要存两排状态

        ·需要注意for循环顺序尽早判断非法情况防止超时

        ·需要滚动数组节省空间

        设状态为f[i][s1][s2][k]为当前讨论到第i行,第i行的状态是s1,第i-1行的状态是s2,已经摆了k枚棋子,由此得状转:f[i][s1][s2][k]=sum{f[i-1][s2][s3][k-cnt[s1]]}

当题反思:

        赛时想出了正解做法,但因为急于打B和D的表而在最后关头没来得及提交代码导致保龄(大悲

        补题一遍过,服了,痛失100pts


Task B「商品促销」

        Lstg:新春送分题

        状压dp/背包裸体,有一定的代码难度(指不状压的情况要开五维数组搞完全背包),注意此题有进制坑(校长的烦恼:6)

        令m[i]=(k1+1)*(k2+1)*……*(ki+1),则:

        ·对于i号商品,映射后的体积是m[i-1],价格是p[i]

        ·对于每种优惠活动i,映射后的体积是sum{m[j]*t[j]},价格是v[i]

        映射结束后直接把商品和活动都看成物体一起跑背包就行了,注意到数量不超过5,嫌麻烦的同学可以直接无脑六进制(无非就是套一个进制转换的函数),此题是体积恰好为V且物体无限的背包问题,还需注意边界/初值

当题反思:

        赛时题面没看懂啊(但一看范围就知道是状压),后来找到原题为USACO Training Section 3.3 Shopping Offers,很震惊,居然又是FJ的题

         最后反倒是打表拿了16pts,我太屑力


Task C「zengaa的演唱会」

        Lstg:新春欢乐题

        罕见的LJ24 Original Problem,主人公zengaa&zhuzc(气抖冷,TangH什么时候才能拥有自己的题面(bushi

        归根结底性质和B是一样的,都是状压dp+背包的组合,浅浅记录一下“哪些歌唱过了以及上一首唱了什么”,这里将对于一首歌的学和唱两个步骤捆绑在一起计算,可以理解为“一首歌学了就一定要唱,不然就白学了设状态f[s][v][i]表示当前唱过的歌是s,已经消耗了v点体力,最后一首唱的歌是i,由此得状转:

Thanks for Lstg 

        for循环有很多层,所以还要注意顺序(喜欢写顺推也可以写顺推,或许更简单

当题反思:

        开始以为又是从codeforces搬的题

        贪心想到了,但是没能实现状压的处理,毫无疑问的保龄了

        十分难以置信


Task D「奶牛政坛」

        Lstg:新春搞事题(动态规划和数据结构你至少得擅长一样,不然就会寄)

        没错,这题不是dp(笑)

        一眼LCA,鉴定为水题。看题面识USACO(建议改为:USACO新年专场),敲板子直接50pts,正解发现每个政坛里深度最大的奶牛一定是离得最远的两只奶牛之一,所以只要每个点都跟政坛里最深的奶牛跑个LCA就行了

        附上由Lstg倾情撰写的证明步骤:

        时间复杂度O(nlogn)

当题反思:

        这题我之前做过,蚌埠住了

        终于想起是听了讲评之后写过的,不过时间久远(指过去快1month),都忘完了

        参考此博客


Total

        考得太差了,其实反映出很多问题

        ·状压没学扎实→做题不熟练,状转意识弱

        ·LCA白学了不练手生,要多练

        最后,希望下场考试能有以我为主人公的题(不忘初心(bushi

        预祝大家2023 新年快乐!这是我本人发布的第一篇blog,后续会搬运很多之前写的Word版题解/总结上来,还请各位多多支持!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值