简单的线段树+lazy标记下传。
维护加法和乘法两个标记。注意当标记下传时要先乘后加。
写代码时稍稍注意一点点就不会有大问题。
简单题,细节参见下方C++代码好了:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define lson pos<<1
#define rson pos<<1|1
#define N 100005
int n,p,m,a[N];
long long sum[4*N],add[4*N],mul[4*N];
void build(int pos,int l,int r)
{
mul[pos]=1;
if(l==r){ scanf("%lld",&sum[pos]); ret......
阅读全文