傻傻康乃馨

文章
6
资源
0
加入时间
2年10月21天

[线性dp]Burenka and Traditions Codeforces1719D1&&D2

设dp[i]表示将前i个元素全部置0的最小代价,状态转移就是选择一个最大的j,使得[j, i]的区间异或和为0,令dp[i] = min(dp[i-1]+a[i]!=0,dp[j-1]+j-i),选择最大的j其实是个优化,理论上是要对于所有右端点为i的异或和为0的区间进行统计,但是由于左端点小于最大的j是不优的,所以直接选最大的j就行。对区间[l, r]内的数字可以全部异或上一个数字x,代价为区间长度除2上取整,x值可以任取,求让整个数组全0的最小代价。