试题 前缀和
題目是這樣的....
擁有 n 個數 ai(1 ≤ i ≤ n) 的你正在面臨 m 個操作,每個操作是以下二者之一: 1 l r x: 將第 l 個數到第 r 個數的值改為 x 2 l r: 詢問第 l 個數到第 r 個數的值的和。
輸入:第一行包含兩個非負整數 n, m。 第二行 n 個整數 ai。 接下來 m 行,每行一個操作,格式如上所述。
輸出:對于每一個詢問操作,輸出一行一個整數為答案。
明顯線段樹...然后本蒟蒻只打了N^2....
#include<iostream> #include<cstdio> #define tcl(a,b,c) for(a=b;a<=c;a++) using namespace std; long long a[10001]; int main() {int n,m,i,j,t;scanf("%d%d",&n,&m);tcl(i,1,n){scanf("%lld",&a[i]);}tcl(i,1,m){scanf("%d",&t);if(t==1){int n1,n2;long long x;scanf("%d%d%lld",&n1,&n2,&x);tcl(j,n1,n2){a[j]=x;}} else{int n3,n4;long long sum=0;scanf("%d%d",&n3,&n4);tcl(j,n3,n4){sum+=a[j]; }printf("%lld\n",sum);}}return 0; }然后.....A了?謝謝數據
轉載于:https://www.cnblogs.com/LSWorld/p/test1.html
總結
- 上一篇: windows下primer3-py安装
- 下一篇: (学习笔记)Oracle表空间相关基本命