B题:简单的前缀和问题唯一的坑是输入量较大,需采用scanf输入。设sum[i]代表从1~i中所有异于前者的雪糕数量。所以区间[x,y]的愉悦值就等于 sum[y]-sum[x]+1加1 是因为吃第一个雪糕时愉悦值也会加1。代码如下: #include <iostream> using namespace std; const int maxn=2000005; int a[maxn]; int sum[maxn]; int n,k,q,x,y; int main(){ scanf("%d%d%d",&n,&k,&q); // cin>&...