摘要:
A:Non-negative Partial Sums题意:给定一个序列,我们能够给这个序列做一个循环移位的操作,即把第一个数字放到整个序列的最后一位。问存在多少种移动后的状态满足对于所有的前缀和都大于等于0。解法:对于一个长度为N的序列,设从1-i的前缀和为sum[i],假设已经有K个数字从前面移动到序列的后面,那么对于当前序列的前N-K个元素减少的值为移动到后面的K个数字的和,增加为0,因此从sum[K+1...N]从选择一个最小的减去sum[i]查看是否大于等于0即可。对于后面K个元素,增加的值为sum[N]-sum[i],减少的值为0,因此从sum[1...K]中选择一个最小的加上su 阅读全文