比赛时间安排
7.30-7.50 看题+自闭
t1是一道开关问题,但是感觉变化特别多,数据范围像个状压,但是无从下手,暴力也感觉非常麻烦,
t2很快想到一个暴力的方法,但是又被否定了,因为把题看成=k了,但是只要是k的倍数就行
t3刚开始还没什么,一看后面是个期望,觉得80%可以放弃了
7.50-9.00
写t1的暴力+打表
想来想去还是t1比较可做,就去搞了,然后发现其实每次变换就是异或,至于往后一位就可以当作<<1,再结合之前写的高维前缀和的一道题,我想到可以用一个辅助数字T,来记录哪些开关将要变化,在每一秒的最后直接^T就行了。
写完之后发现样例过了,(中间也有de bug的时间),然后自己又测试了几组,手推一下,发现没什么大问题,于是就想能否打表。我先想前导0和结果有关吗,最后自己试了一下,发现是没有关系的,于是放心地直接打12位了
9.00-9.30
t2的暴力
我发现题目中a[i]<k,所以认为只可能变成0或者k,然后就依次选择,最后通过最后一个判断是不是合法的就行了
写完之后发现样例不对,发现有可能第i个数-,第i+1个数+,直接超过k了,这个情况没考虑,赶紧加上,样例是对了,但是还是有疑问,会不会更多
9.30-10.30 【无效思考ing】
刚开始想t2的问题,但是自己也举不出来例子,觉得不太可能,如果这一加超过2k了,那前一个数减的就太多了,完全没必要,觉得可能对了吧
然后看t3,发现没给模数,(这个问题不大,之后应该有),突然想到最暴力的不就是把每种可能的情况乘上发生的概率嘛,于是就开始写了,写到一半,突然想到题目中说的是最优策略,但是我也不太清楚怎么才算,于是只能不了了之了。
10.30-11.00
老师发了大样例,我一测,发现t1错了!人都傻了,只能把表全删了。于是我再去想想怎么回事,发现T有可能<<1超出了n的范围,所以再取一下&就行了。于是就这样过了(幸好没de一年)
11.00-12.00
也许在发呆?
赛后总结反思
- t2那个式子化简其实很明显的,竟然没有想到!下次要多思考一下
- 期望问题几乎一窍不通,谁来救救我啊!!
- debug能力似乎强了那么一丢丢