hiho刷题日记——第二十天线段树的区间修改

来源:互联网 发布:数据分析职业 编辑:程序博客网 时间:2024/04/30 13:02

题目

假设货架上从左到右摆放了N种商品,并且依次标号为1到N,其中标号为i的商品的价格为Pi。小Hi的每次操作分为两种可能,第一种是修改价格——小Hi给出一段区间[L, R]和一个新的价格NewP,所有标号在这段区间中的商品的价格都变成NewP。第二种操作是询问——小Hi给出一段区间[L, R],而小Ho要做的便是计算出所有标号在这段区间中的商品的总价格。
由于题目的数据规模是十万级。直接朴素算法就过了。

代码

#include<cstdio>using namespace std;const int MAXP=100000+1;int P[MAXP],N;int main(){    scanf("%d",&N);    for(int i=1;i<=N;i++) scanf("%d",&P[i]);    scanf("%d",&N);    int o,l,r,p;    while(N--)    {        scanf("%d%d%d",&o,&l,&r);        if(o)         {            scanf("%d",&p);            for(int i=l;i<=r;i++) P[i]=p;        }        else        {            for(int i=l;i<=r;i++) o+=P[i];            printf("%d\n",o);        }    }    return 0;} 
0 0
原创粉丝点击