NOIP模拟赛2021/11/15

比赛时间安排

8.30-8.40
t1感觉可以直接dfs
t2暴力枚举,n^2拿20
t3暴力n^3循环拿30,再弄一个链40
t4概率不会!(看到那么多小数点就头晕)

8.40-9.30 写完前三题的暴力

t1刚开始理解错题意了,因为看到那个数据第一个就不对,发现有问题,重新理解了一下,然后写完,小样例过了,大样例t掉

t3先找的lca,然后预处理两点之间距离,题目样例解释上规定a<b<c,最后再*6就行,我觉得这说不定还能更快一点,也这样写,过了,链的话我暂时先放了,想先看一下t4可不可做。

t4我看完题,照着样例开始推,然后那个a=b=c=y的情况都错了,就放弃了

9.30-9.50
看t1,觉得是可以优化的,字符串没那么多花样,我想,既然求的是最优解,那是不是只要能分就分开就最优了,但是想到有可能再次选择之后中间原来不是回文串的变成了回文串,于是就比较不敢确定,然后我就自己码了一下我想的代码,小样例过了,大样例很快,但是有问题,调了半天过不了,我以为是思路有问题,然后就过了

9.50-11.10
看t2,想一想有没有好方法,我想到的是x<=100的情况,我把y存在x的set里,也就是存每一列有哪些位置有洞,然后枚举每两列,再枚举元素较少的那一列的元素,另一个用lower_bound去找,然后直接加起来,这样我计算的复杂度很大,但是因为不可能每一列的元素都特别多,所以就这样试一试。刚开始用的是set,以为好写,结果到lower_bound这一步发现指针没法-k,也不知道怎么处理,只好重新写vector的。写完之后测了一下大样例,发现不对,而且少了特别多的,然后就心态崩了,一直在调代码,调不出来,我不知道哪里能让我的答案差那么多。然后就想着先放一放。

11.10-11.30
把t3的链的情况写了,发现只需要一个公式n^2就行了,枚举a和c,然后中间的都能当成b,

11.30-12.00
那既然链的情况我写过了,那么正解是不是类似呢,我思考能不能也去找起始点,然后加起来,尝试了一下发现答案是不对的,样例都过不去,然后我把样例画出来,发现少考虑一种情况,不一定全部的点在a,c之间,所以还需要一个数组记录到每个节点不同深度的点的个数?感觉非常麻烦,放弃

12.00-12.20
我继续看t2,然后和我之前写的暴力对拍了一下,发现小数据完全没问题,但是大数据就差的很多,然后把每个变量都输出了一下发现。。。数组开小了,非常崩溃又激动,改了之后测试大样例,过是过了,但是完美t掉,想优化但是感觉找不到方法了

12.20-12.40
想着起码得a一题吧,于是去看t1,再次思考那个贪心,还是决定会不对,于是就加了个最优解剪枝,
300的数据过了,然后就交了,没想到还是只有15

12.40-1.00
剩下20分钟,我也知道写不了什么了,但是感觉t4的特判很短,如果能把样例推出来,那么就能拿15,然后开始写,和我想的都不一样。我试出来答案是200/216,但是不知道为什么。然后打表发现我概率算错了,有重复的部分,当时时间快来不及了,我赶紧把特判写上去就交了

赛后总结反思

  1. t1的贪心是正确的,但是我误以为是错误的,没写,最后只有15分。以后想一些hack的东西,一定要去推出来,举出例子,光想是不行的,不然是不能确定对错的
  2. t4交的时候太心急了,判断条件写了一个a=b=c=y,然后就wa了,不能这么慌,所以一定不要在最后一刻再去开新的题!!要在之前耐心看一看

关于分数

t1应该拿到100分,但是因为我的想法,以及考场上的代码实现是有问题的,只有15分
t4应该拿15分,但是最后只有2分
除此,已经把会写的都写完 了

与正解的差距

t1

考场代码不对的地方在于加了一个剪枝:如果中间的一部分是一个回文串,那么直接+它的长度,结束循环,然后就错了。。现在也没搞懂为什么

t2

想到是不是可以二维数点了,但是看整个矩形是一个菱形,不会搞,然后就放弃了,是知识点的问题,应该想到转一下

t3

有一个非常优秀的优化,就是bitset,直接80分,tql,先把每两个点之间距离<=k的点存下来,枚举任意两点,求他们这个集合的交,这类集合操作用bitset再好不过了!!!!
正解是用了一堆复杂的计算,找通式,针对每个节点,把他们当做交点统计答案,找通式这个思想还是要会一点滴

t4

赛场上没有认真思考,觉得代码中的每一步都很正常,但是如果让我想,是无法这么连贯流畅的写出来,虽然说是个模拟,但是细节很多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值