Codeforces Round #584 - Dasha Code Championship - Elimination Round (rated, open for everyone, Div. 1 + Div. 2)
遗憾:G1在最后一分钟想出了正解,前面胡了不知道多久的假算法。。
E2
这是一道DP题,考试的时候一直没有想到,E1在用暴力做
把装压DP想到以后在加一个预处理
枚举子集的子集是3n3^n3n的,可以用组合数(2+1)n(2+1)^n(2+1)n证
mask为一个子集
for(int i=mask;i;i=mask&(i-1)){
...
}
F
首先是拆点的思想,也就是把长度为nnn的边中间加n−1n-1n−1个点
然后是分层
最后是并点的思想,假如aaa->bbb->ccc,aaa->ddd->eee,val(aaa->bbb)=val(aaa->ddd),可以把ddd的所有出边合并到bbb上,防止其分支过多,难以处理,但是要注意要更新ddd的答案
最后贪心即可
Codeforces Round #585 (Div. 2)
E
在psc233的点拨之下,才想明白两种颜色间的贡献可以独立计算。
这个我试着想过,但觉得不对,是因为我当时的两种颜色还在原数列中考虑,而不是单独分离出来
发现这个以后状压就很好写了
一些图片记录