2021-11-10NOIP模拟赛总结

1.时间安排

审题:7:50—8:23

  T1像是线段树,T2应该是kmp,T3是个DP,T4可能是基环树类型的树上问题

T1:8:23—10:23

  又写炸了…一个小时都在写线段树,结果处理全局修改的时候发现改不了,不然找不到了,后来一想修改是全局操作可以用一个桶,就把线段树删了想着拿暴力set做,码完了但是样例一个没过,insert前find错了,想看看每次取交取并前后元素差异结果set查询元素不会,就订不出来了…
应 该 好 好 读 题 , 心 态 炸 没 了 \color{white}{应该好好读题,心态炸没了} ,

T2:10:23—10:56

  kmp只是一开始的思考方向具体细节其实都不知道怎么写,但是样例非常优秀的把kmp匹配不了的情况列了出来,我就发现n>1和n=1的情况要分类讨论;n=1直接找next[m]就行了,如果算出的长度为0就输出-1;n>1时保底长度为(n-1)*m,然后向外扩展,对两个字符串的首尾匹配长度进行比较,我是从最长匹配向内缩小,从最长匹配长度比较到首尾匹配长度相同时判断尾部减去匹配长度的最后一位是否与s[m]相同,同理,对首部进行判断,如果两个条件全部满足,退出循环,ans即为(n-1)*m+匹配长度;
终 于 A C 啦 ! ! ! \color{white}{终于AC啦!!!} AC!!!

T3:10:56—11:30

  一道DP题,像是背包(?),但是容积和背包数量也是DP要求的,同时求两个DP问题没有什么思路,但是有一个显然的贪心,最大的a是人数最多的队伍在所有情况中人数最少的底线,那么就以把a补满为标准,把所有人按从大到小排序(为满足队伍最多则每队人数都尽量小),然后放到a的队伍里,放满了就换成没有分队的人中a最大的人为队头,继续补满,直到所有人都分完;这时可能有最后一队没分够的情况,有两种解决办法,把队内元素从大到小依次弹出,直到队伍里最大的a等于小于队内人数,这时把已弹出的人从第一队到最后一队依次放(也可以/=队伍数量),最后输出队伍数量和第一队人数即可
谁 能 想 到 队 列 会 炸 内 存 T A T \color{white}{谁能想到队列会炸内存TAT} TAT

T4…

  一道看了没写的题,如果是链或者菊花图,答案就是直径和一如果是树且不是自环,答案是去掉环后最大深度,但是这样就需要一次处理所有答案,不会处理,就此跳过
我 的 暴 力 分 啊 Q A Q \color{white}{我的暴力分啊QAQ} QAQ

2.总结

  1. T1时间戳的妙用确实学到了,没有想到说明这种思路值得学习,还有负数下标的处理简洁且方便,数据结构还是能不上就不上
  2. kmp的理解不深的话可能想不到正反求两次kmp,但是能想到的话就很简单了,注意一下kmp没有匹配成功的情况(-1||(n-1)*m)以及长度和kmp全部匹配成功时m位与m-lt[now]的比较,其实多试几个样例就能发现了,样例yyds!
  3. 贪心优化DP,似乎有人贪过了…但是DP还是要写的(贪心不会TT||),f[]和g[]的含义其实很好想,初值的设置也很显然,但是x+a[x+1]就值得思考一下,为什么?因为前x个已经全部组队成功,第x+1个只能加入前队或者另组新队,根据f[]和g[]的含义就能很清晰的写出DP转移式(x+a[x+1] or i-1->i)
  4. 实在是个大码量,感觉就算写特判也难写,先求最长次长次次长路径,然后换根DP求以每个点为根的该点最大次大次次大深度,还有lca,求直径,以及跑环回答询问的处理,都是难点,T4不愧为T4

3.对比

  1. T1十分,低于平均分,而且低很多…
  2. T2AC了,而且用时半小时,但是AC的人不少,也算优势
  3. T3数组开大挂掉80,没有试样例,不应该
  4. 没写到,暴力20还有小数据都没拿到

~~ 暴力保底,才有本钱追梦~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NOI(全国青少年信息学奥林匹克竞模拟的测试数据是指用于评测参选手的程序的输入和对应的输出。测试数据是非常重要的,因为它决定了参选手的程序能否正确地解决问题。 在NOI模拟中,测试数据具有以下特点: 1.充分覆盖:测试数据应涵盖各种可能的输入情况,包括边界条件和极端情况。通过提供不同的测试数据,可以考察选手对问题的全面理解和解决能力。 2.随机性和均衡性:为了公平起见,测试数据应该是随机生成的,而不是针对某个特定算法或解法设计的。同时,测试数据应该是均衡的,即各种情况的概率应该大致相等,以避免偏向某些解法。 3.合理性和可行性:测试数据应该是合理和可行的,即符合题目要求的输入数据,并且是选手能够通过编写程序来处理的。测试数据应该考虑到程序的限制和时间复杂度,以充分测试选手的编程能力。 NOI模拟的测试数据通常由经验丰富的考题组负责生成。他们会根据题目的要求和限制,设计出一组合理、充分、随机和均衡的测试数据,以确保参选手的程序在各种情况下都能正确运行,并且能通过性能测试。 总之,测试数据在NOI模拟中起到了至关重要的作用,它既考察了选手对问题的理解和解决能力,又提高了选手编程的技巧和效率。同时,合理和恰当的测试数据也是公平竞的保证,确保每个参选手有相同的机会和条件进行竞争。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值