NOIP模拟赛2021/11/08

比赛时间安排

7.50-8.00
t1 感觉只会10分的dfs
t2 感觉还是只会dfs啊,直接判断从哪里断
t3 感觉像是个背包(好像就是),不过知道是一道dp题,不想写啊o(╥﹏╥)o
t4 心中有暴力的做法,但是算了一下复杂度,太高了,所以先不写

8.00-8.30
t2的暴力写完,枚举从哪里断的时候从后往前枚举,这样分的段数少,说不定还能骗几分(虽然并没有)

8.30-9.05
硬着头皮去写t3了,挑战一下,只写了k=1的情况,然后模仿背包的格式设出数组, f [ i ] [ j ] f[i][j] f[i][j]表示选择了i件商品,总价值为j,的方案数,题上虽然要求平均数,但是精度会丢失,所以只能这样搞了,然后写完三层循环之后,发现过不去样例,在我要崩掉的时候,瞎改改,结果过了,狂喜(果然,dp很玄学)。其实很容易理解,循环写反了,对后面的转移有影响了

9.05-9.15
用状压+dfs写t1,至于为什么这样,其实本来我是想直接写dfs的,还能拿30分吧(当时想的是),但是又想到有可能你选来选去的方案重复了,会多算,那怎么记录呢?就想到了状压,标记一下,然后就只写了10分的,结果还wa了一组,剩5分了,qwq

9.15-9.50
去好好想t4了,因为觉得我原来想的直接按照题目模拟的复杂度实在太大,O(mn^2),怕过不了,所以一直在想怎么优化,结果最后想不到,太乱了,然后就直接写了最开始的想法交了(没想到成绩出来竟然把暴力分拿满了)

9.50-11.40
漫长的两个小时
首先我从第一题开始看,觉得想不到怎么办了,直接放弃
然后第二题,我觉得其实这个算法也许不是那么慢,想试一试最大能过多少的数据,于是自己造了几组最大的,发现跑的飞快!我竟然有一瞬间觉得我能A!!!(果然还是我太单纯,数据太弱了,出题人直接全卡死o(╥﹏╥)o)
然后看t3 我觉得既然已经写出来了k=1的情况,那k!=1的情况可以尝试一下,多加了一层循环,不管按照给的数据范围,还是能再拿20的,所以就尝试着写一写,因为如果能写出来就是一个大进步。结果。。。果然写挂了,气愤的我直接删掉,然后不管了
t4是我觉得我唯一能再思考一下的题了,因为我不确定我的暴力30分会不会t,然后我就后面的时间都在看这道题。
我先仔细看了一下题目中的代码,感觉没什么端倪,但是题中的数据范围有一条是,x为偶数,那么我想会不会和奇数位偶数位有关,于是又看了一遍代码,发现这个操作其实就是把奇数位抽出来排序,偶数位抽出来排序,然后两个合并到一起!(虽然题解上说很显然),然后我怕错,自己先验证了一下,发现没问题,就从这里出发开始思考。
每一次的操作其实就是先修改,然后再对比,但是如果正常写的话复杂度是个nmlogn,30分稳了
这么大的数据m不能省,所以最多*logn,就想要上数据结构维护
要实现的操作是,查询一个数,修改,然后与按照位置插入,再对比?刚开始想了set,但是对比的时候依然需要O(n),线段树,树状数组同理,所以就非常懵,想了半天想不到下一步,就卡死在这里了,看时间不多了,于是先把30分的打了交上去了

11.40-12.10
检查+发呆+不知道在干啥
因为已经想不到东西了,于是就去检查前面的代码,我怕字符串hash的时候会炸,于是就把long long 改成ull,然后交了,然后确定了一下代码什么都搞好了,就闲着了,反正剩10分钟了(滑稽)

赛后总结反思

  1. 对dp的熟练度确实有提升,但是完全不够,张老师,我来了(滑稽)
  2. 感觉脑子变慢了,好像只会想暴力了,t4很容易看出来的性质,竟然推了这么久(笑哭),不过这个推导过程感觉非常有参考价值
  3. 考试中间还是有瞌睡一段时间,大概有30分钟都是没法思考的,不知道这么解决啊o(╥﹏╥)o

与正解的差距

t1

完全没看出来是dp啊喂,除此,有一个比较重要的点,就是每个糖果放的顺序是无关的,但是我认为是有关系的,所以又想多了。dp能力,和看本质的能力需要提高。(把一些没用的条件去掉可以节省很多时间复杂度o(╥﹏╥)o)

t2

没想到正解竟然是几个特判。。。太der了吧。完全没想过这么简单,就算想到了也不敢写(笑哭)。但是这个特判确实很巧妙,需要自己深度思考性质,这点是所欠缺的。

t3

首先把求x,变成求0,相当于给了一个偏移量,这个没想到,还有就是前缀和优化之类的,不过这都比较远了,先把基础dp搞好,加油!

t4

曾经想到过线段树,也想到过用1去标记数字,但是局限于标记数字出现的次数,没想到用1,-1代替奇偶求前缀和,这点记有,但是应用不熟练

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值