Codeforces Round #489 (Div. 2) E. Nastya and King-Shamans
这道题的算法是:i从1开始,首先求sum(1-i),然后在[i+1,n]中找到第一个a[j]>=sum(1,i)如果a[j]==sum(1,i)结束搜索,否则令i=j,循环过程因为每次做完一次之后sum会至少增大一倍,所以一个查询的复杂度会维持到log(Max(a[i]))需要维护区间最大值和区间和的线段树来实现算法#include#include#include#includeusingname