看数据范围,这道题目直接暴力肯定是过不去的,所以得用前缀和优化一下

因为填涂是一行一行来的,所以我们可以先计算出来涂每行需要涂几个格子,再建立前缀和数组w,b,rw,b,r分别表示把前ii行涂成白、蓝、红分别需要涂几个格子

再有一个难点就是最佳策略,这里可以直接用枚举的方法做,枚举每一种情况下需要涂的格子数

我们分别看三个颜色的区域:

白色区:

这个最简单,枚到第ii行,要涂的格子数就是wiw_i

蓝色区:

涂的时候是从第i+1i+1行开始的, 要涂jj行,所以,枚到第i+ji+j行时,要涂的格子数就是bi+jbib_{i+j}-b_i

红色区:

因为剩下的全涂红色,所以用rnr_n减去涂前i+ji+j行要涂的格子个数就行了

综上所述,当白色涂ii行,蓝色涂jj行时,要涂wi+bi+jbi+rnri+jw_i+b_{i+j}-b_i+r_n-r_{i+j}个格子

最后用打擂台取最小值即可

不开long long见祖宗!!!!!!!

3 条评论

  • 1