开始解题:我们设置一个差分数组dif,dif[i]表示的是f(i)-f(i-1),现在要使下标为[2,9]的f(x)值都要+1,那么对于下标为[2,9]的元素来说,它们的差分不会改变,因为大家都加了1,所以对一个范围内的值操作,影响的只是范围内与范围外的值的差分,即范围的临界的差分。所以dif[2]++即可。同理,我们要使下...
#include <iostream>usingnamespacestd;constintN = 1e7 +10;intn, m;inta[220],s[N];//定义s数组求前缀和intfind(intx)//定义find函数来寻找小于等于x的Ai序列下标{intl =0, r =n;while(l <r) {intmid = l + r >>1;if(a[mid] >= x) r =mid;elsel = mid +1; }returna[l] <= ...
一、代码如下 //202112-1-序列查询#include <iostream>using namespace std;#define NumFlag 201 //n最大为200int a[NumFlag];//数组Aint n;//数组个数int N;//N值void input(){//输入n、N、数组数据cin>>n;cin>>N;for(int i=1;i<=n;i++){cin>>a[i];}}void output(){//输出数组内容f...
202112-1 序列查询 #include <iostream>usingnamespacestd;intn, m, res;inta[220];intmain() { cin>> n >>m;for(inti =1; i <= n; i ++) { scanf("%d", &a[i]); res+= (i -1) * (a[i] - a[i -1]);//求出a[n]之前各项f(x)对应的值的和} printf("%d\n", res + (m...