2018-Reconquista-T17
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
== Contest Information ==
''' Petrozavodsk Winter 2016 - Zhejiang U Contest 2'''
[http://opentrains.snarknews.info/~ejudge/team.cgi?contest_id=001481 Opentrains]
== 流水账 ==
== 总结 ==
=== lsmll ===
开场三题还算稳定,但是中期又出现了比较严重的卡题,E和F题,占用了大量的时间,包括后来的D题也费了很多时间。除了可能个人水平的问题外,我觉得配合上还有较大的问题,比如到比赛的最后时刻我才知道D题的题意,D题蒋学长写之前只和lzw学长确认过做法,我并不知道怎么做。如果三个人都参与进去,可能能提出更好的做法(二队到了后期都是三个人参与一道题的)。比如二队比赛后1min用了log^2^的做法过了(虽然正解是一个log)。E题遇到比较严重的问题时也应该让更早jsb参与进来。
今天基本读完了所有题,这一方面上有所进步。要继续提高。另外今天E题教训我们以后最好先写一个保证正确性的做法,如果TLE了再去优化,这样可以减少提交次数罚时。
=== jsb ===
今天大家状态都不是很好……
签到了三题后,我先使了个D的log^2^TLE了;然后lzw学长写E接连wa了几发;然后lsmll学长写F依旧WA了……
面对这个糟糕的三开三WA局面,我决定先放弃写Dlog的做法,先去帮lzw学长调题。
我们很快发现问题所在,但是一个看似修起来很简单的小任务,我们怎么想都想不到优美的实现;而且调得久了,稍微麻烦一点的实现都不想去写。
搞了好久,我们才拼拼凑凑出一个比较优美的fix,终于过了……
随后lzw和lsmll学长奋力修补F,我趁此去写D的log做法。
他们配合得也挺不错,在一些头脑风暴后和一些尝试后终于调过了。
D的话,因为我想复杂了,写了一个很麻烦的treap+可持久化做法。WA了后,队友们合力写对拍等助我调题。终于在结束前2min过了D,真是侥幸啊。
感觉今天做得很糟糕,还好后来还算是都过了,但是浪费了大量的时间。
我们既要提高个人能力,也要提高团队配合。
=== lzw ===
团队配合上相比之前有了进步,比如我逐渐适应了颜学长的代码风格,基本上不用颜学长解释也能直接看懂代码了,而且今天顺利帮学长找到了bug。E题最后的fix也是在jsb的启发下突然想到。今天罚时爆炸,说明个人能力还有很大的提升空间,我的E题花了太多时间debug。 E, F都是很快就想到了做法,但是实现上出现了错误。 F上的决策其实有些问题,最后一共WA了5发,如果我在颜学长WA了2发的时候先放下手中的E帮颜学长debug也许可以减少一些罚时。
== 补题 ==
B []
C []
G []
H [lsmll]
J [lzw] 一个限制条件相当于限制两个前缀和的奇偶性。考虑所有size >= 2的联通块,最多有n / 2个,2^n/2^枚举每个联通块的奇偶性。然后问题转化为,限制了某些前缀和的奇偶性,求方案数以及字典序最小的方案。
考虑dp, dp[i][0/1]表示确定了前i位, 前缀和为0/1的方案数,可以O(n)求出。然后再倒着dp一遍,ok[i][0/1]表示确定了前i位,前缀和为0/1,后面的位不知道,是否有解,这个可以倒着根据dp数组求出来。 然后利用ok数组逐位确定。
L []
M []
== Solution ==
Contest Information
Petrozavodsk Winter 2016 - Zhejiang U Contest 2
流水账
总结
lsmll
开场三题还算稳定,但是中期又出现了比较严重的卡题,E和F题,占用了大量的时间,包括后来的D题也费了很多时间。除了可能个人水平的问题外,我觉得配合上还有较大的问题,比如到比赛的最后时刻我才知道D题的题意,D题蒋学长写之前只和lzw学长确认过做法,我并不知道怎么做。如果三个人都参与进去,可能能提出更好的做法(二队到了后期都是三个人参与一道题的)。比如二队比赛后1min用了log2的做法过了(虽然正解是一个log)。E题遇到比较严重的问题时也应该让更早jsb参与进来。
今天基本读完了所有题,这一方面上有所进步。要继续提高。另外今天E题教训我们以后最好先写一个保证正确性的做法,如果TLE了再去优化,这样可以减少提交次数罚时。
jsb
今天大家状态都不是很好……
签到了三题后,我先使了个D的log2TLE了;然后lzw学长写E接连wa了几发;然后lsmll学长写F依旧WA了……
面对这个糟糕的三开三WA局面,我决定先放弃写Dlog的做法,先去帮lzw学长调题。
我们很快发现问题所在,但是一个看似修起来很简单的小任务,我们怎么想都想不到优美的实现;而且调得久了,稍微麻烦一点的实现都不想去写。
搞了好久,我们才拼拼凑凑出一个比较优美的fix,终于过了……
随后lzw和lsmll学长奋力修补F,我趁此去写D的log做法。
他们配合得也挺不错,在一些头脑风暴后和一些尝试后终于调过了。
D的话,因为我想复杂了,写了一个很麻烦的treap+可持久化做法。WA了后,队友们合力写对拍等助我调题。终于在结束前2min过了D,真是侥幸啊。
感觉今天做得很糟糕,还好后来还算是都过了,但是浪费了大量的时间。
我们既要提高个人能力,也要提高团队配合。
lzw
团队配合上相比之前有了进步,比如我逐渐适应了颜学长的代码风格,基本上不用颜学长解释也能直接看懂代码了,而且今天顺利帮学长找到了bug。E题最后的fix也是在jsb的启发下突然想到。今天罚时爆炸,说明个人能力还有很大的提升空间,我的E题花了太多时间debug。 E, F都是很快就想到了做法,但是实现上出现了错误。 F上的决策其实有些问题,最后一共WA了5发,如果我在颜学长WA了2发的时候先放下手中的E帮颜学长debug也许可以减少一些罚时。
补题
B []
C []
G []
H [lsmll]
J [lzw] 一个限制条件相当于限制两个前缀和的奇偶性。考虑所有size >= 2的联通块,最多有n / 2个,2n/2枚举每个联通块的奇偶性。然后问题转化为,限制了某些前缀和的奇偶性,求方案数以及字典序最小的方案。
考虑dp, dp[i][0/1]表示确定了前i位, 前缀和为0/1的方案数,可以O(n)求出。然后再倒着dp一遍,ok[i][0/1]表示确定了前i位,前缀和为0/1,后面的位不知道,是否有解,这个可以倒着根据dp数组求出来。 然后利用ok数组逐位确定。
L []
M []