CCF 202112-2 序列查询新解(C++) 该题关键点在于:分段计算 先对f分段:for(int i=1;i<=n+1;i++) //以 f(i) 为区域划分计算 在此区域内f的取值相同,值为:i-1。 再对每个f值相同的区域按照g值进行分段:for(int j=a[i-1];j<=a[i]-1;j=j+Long){//此区间内有Long个g取值为g(j)的数...
WhereFlag=j;break;//跳出} }longlongLeftLong=WhereFlag-LeftFlag;//g(i)<=f(i)部分长度longlongRightLong=RightFlag-WhereFlag+1;//g(i)>f(i)部分长度longlongsum1=fFlag*LeftLong-GSum(LeftFlag,WhereFlag-1);longlongsum2=GSum(WhereFlag,RightFlag)-fFlag*RightLong; sum=sum+sum1+sum2; }//...