摘要: 显然答案只与a、b、c中各自1的个数及位数有关。a、b只考虑前i位怎么填时,c最多在第i+1位上为1,而第i+1位及之后的a、b怎么填都不会对前i位造成影响。于是设f[n][i][j][k][0/1]表示只考虑前n位,a用i个1,b用j个1,c用k个1,且c的第n+1位为0/1时的最小值。转移时枚举 阅读全文
posted @ 2018-09-14 20:03 Gloid 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 考虑暴力树剖。那么修改路径和查询子树最小值非常简单。 对于换根当然不能真的给他转一下,我们只记录当前根是哪个。对于查询,如果查询点不在当前根到原根的路径上,显然换根是对答案没有影响的;如果是当前根,答案就是整棵树最小值,否则即是要查询该路径上的后代所在子树外的点的最小值,去掉这段区间就可以了。 阅读全文
posted @ 2018-09-14 13:37 Gloid 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 令f[i][0/1/2][0/1]表示前i位,不存在满足要求的B串和W串/存在满足要求的B串不存在W串/存在满足要求的B串和W串,第i位填的是B/W的方案数。转移时考虑连续的一段填什么。大讨论一波后瞎优化一波就成线性的了。k=1应该是要特判一下的不过数据里没有那就不管了。 成功的把这么短的题面都看错 阅读全文
posted @ 2018-09-14 02:26 Gloid 阅读(124) 评论(0) 推荐(0) 编辑