求一段连续的区间,使其在满足 和 对p取余不超过k的 前提 下 和最大 。做法:用线段树维护区间最小值,最小的下标,即最左边,因为加入sum[i]%p>k就要减去一个sum[id] , sum[id]%p在【sum[i]%p-k,sum[i]%p】之间,sum[i]-sum[id]的值就为以i结尾的满足条件的连续的一段数的最大值,所以id要尽可能小,所以就是求值在【sum[i]%p-k,sum[i]%p】之间的最左边的数的下标,即满足条件的数的下标最小值。每次更新时把进过的结点的下标最小值(如果能更新)都更新一遍View Code #include<cstdio>#inclu Read More
posted @ 2012-02-09 19:43
Because Of You
Views(581)
Comments(0)
Diggs(0)

浙公网安备 33010602011771号