日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ACwing 245. 你能回答这些问题吗(线段树区间子段最大值+单点修改)

發布時間:2024/4/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ACwing 245. 你能回答这些问题吗(线段树区间子段最大值+单点修改) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給定長度為N的數列A,以及M條指令,每條指令可能是以下兩種之一:

1、“1 x y”,查詢區間 [x,y] 中的最大連續子段和,即 maxxlrymaxx≤l≤r≤y{ri=lA[i]∑i=lrA[i]}。

2、“2 x y”,把 A[x] 改成 y。

對于每個查詢指令,輸出一個整數表示答案。

輸入格式

第一行兩個整數N,M。

第二行N個整數A[i]。

接下來M行每行3個整數k,x,y,k=1表示查詢(此時如果x>y,請交換x,y),k=2表示修改。

輸出格式

對于每個查詢指令輸出一個整數表示答案。

每個答案占一行。

數據范圍

N500000,M100000N≤500000,M≤100000

輸入樣例:

5 3 1 2 -3 4 5 1 2 3 2 2 -1 1 3 2

輸出樣例:

2 -1
#include<bits/stdc++.h> using namespace std;#define ll long long #define eps 1e-9const int inf = 0x3f3f3f3f; const int mod = 1e9+7; const int maxn = 500000 + 8;int n, m, k, x, y; ll a[maxn];struct node {int l, r;ll sum, dat, lmax, rmax; }tree[4 * maxn];void push_down(int i) {tree[i].sum = tree[i * 2].sum + tree[i * 2 + 1].sum;tree[i].lmax = max(tree[i * 2].lmax, tree[i * 2].sum + tree[i * 2 + 1].lmax);///緊靠左端的最大連續子段和tree[i].rmax = max(tree[i * 2 + 1].rmax, tree[i * 2 + 1].sum + tree[i * 2].rmax);///緊靠右端的最大連續子段和tree[i].dat = max(tree[i * 2].dat, max(tree[i * 2 + 1].dat, tree[i * 2].rmax + tree[i * 2 + 1].lmax));///區間連續最大字段和 }void build(int i, int l, int r) {tree[i].l = l;tree[i].r = r;if(l == r){tree[i].sum = a[l];tree[i].dat = a[l];tree[i].lmax = a[l];tree[i].rmax = a[l];return;}int mid = (l + r) / 2;build(i * 2, l, mid);build(i * 2 + 1, mid + 1, r);push_down(i); }void change(int i, int pos, int k) {if(tree[i].l == tree[i].r){tree[i].sum = k;tree[i].sum = k;tree[i].dat = k;tree[i].lmax = k;tree[i].rmax = k;return;}int mid = (tree[i].l + tree[i].r) / 2;if(pos <= mid)change(i * 2, pos, k);elsechange(i * 2 + 1, pos, k);push_down(i); }node tmp;node search(int i, int l, int r) {if(tree[i].l >= l && tree[i].r <= r){return tree[i];}node a, b, c;a.dat = a.lmax = a.rmax = a.sum = -inf;///左兒子b.dat = b.lmax = b.rmax = b.sum = -inf;///右兒子c.dat = c.lmax = c.rmax = -inf;///父節點c.sum = 0;int mid = (tree[i].l + tree[i].r) / 2;if(l <= mid && r <= mid){a = search(i * 2, l, r);c.sum += a.sum;}else if(mid < r && mid < l){b = search(i * 2 + 1, l, r);c.sum += b.sum;}else{a = search(i * 2, l, r);b = search(i * 2 + 1, l, r);c.sum += a.sum + b.sum;}c.dat = max(c.dat, max(a.rmax + b.lmax, max(a.dat, b.dat)));///區間連續最大字段和c.lmax = max(c.lmax, max(a.lmax, a.sum + b.lmax));///緊靠左端的最大連續子段和c.rmax = max(c.rmax, max(b.rmax, b.sum + a.rmax));///緊靠右端的最大連續子段和return c; }int main() {std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n>>m;for(int i = 1; i <= n; i++)cin>>a[i];build(1, 1, n);for(int i = 0; i < m; i++){cin>>k>>x>>y;if(k == 1){if(x > y)swap(x, y);cout<<search(1, x, y).dat<<'\n';}else if(k == 2){a[x] = y;change(1, x, y);}}return 0; }

?


轉載于:https://www.cnblogs.com/RootVount/p/11432182.html

總結

以上是生活随笔為你收集整理的ACwing 245. 你能回答这些问题吗(线段树区间子段最大值+单点修改)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美一区二区在线免费观看 | 一级黄色特级片 | 99视频这里有精品 | 日韩成人看片 | 在线不卡视频 | 天天拍天天射 | 黄a网站| 成片免费观看视频 | 欧美视频精品在线 | 一级片免费在线观看 | 桃色一区二区三区 | 免费无遮挡无码永久视频 | 麻豆国产精品 | 亚洲国产日韩在线 | 中文字幕第一页亚洲 | 欧美久久久久久久 | 日韩中文免费 | 欧美黄页在线观看 | 色综合久久88色综合天天6 | 亚洲顶级毛片 | 国产一二三精品 | 亚洲大片精品 | 欧美日韩亚洲第一 | 成人网在线观看 | 一本色道久久亚洲综合精品蜜桃 | 国产精品久久成人 | 免费麻豆国产一区二区三区四区 | 91麻豆精品国产91久久久久久 | 色香五月| 人妖被c到高潮欧美gay | 天堂99| 欧美午夜在线视频 | 一区在线免费 | 精品人妻一区二区三区含羞草 | 国产免费播放 | 国产东北女人做受av | 亚洲综合区| 国产三级国产精品国产专区50 | av资源免费看| 久久久久99精品成人片三人毛片 | 欧美顶级毛片在线播放 | 1024手机看片国产 | 麻豆69xxnxxporn | 大尺度做爰呻吟舌吻网站 | 精品美女一区 | 国产毛片3 | 色呦呦国产 | 操模特| 日韩欧美一本 | 色女人网| 亚洲精品视频在线观看视频 | 丰满人妻一区二区三区免费视频棣 | 一二三四av | www网站在线免费观看 | 精品黄色av | 欧美视频www| 久久大陆 | 在线观看国产精品入口男同 | 国模少妇一区二区 | 亚洲色图21p | 日本a级免费 | caoprom超碰| 九九亚洲精品 | 欧美老熟 | 欧美性生交片4 | 五月婷婷在线观看视频 | 91最新地址永久入口 | 香蕉人人精品 | 综合激情网| 欧美日韩国 | eeuss一区| 国产亚洲一区二区在线 | 成年人性视频 | 日本黄频| 爱草在线视频 | 成人免费观看视频网站 | 久久咪咪 | 黄色三及 | 操碰在线观看 | 国产午夜福利在线播放 | 鲁一鲁一鲁一鲁一av | 国产三级伦理片 | 中文字幕无码人妻少妇免费 | 91成人小视频 | 日韩av中文| 欧美激情在线 | 精品午夜久久 | 一级免费a | 亚洲高清视频网站 | 天堂网在线视频 | 国产a一级片 | 色狠久| 亚州av综合色区无码一区 | 久久大陆 | 国产乱色| 亚洲人免费视频 | 精品无码国产污污污在线观看 | 一级黄视频 | 黄色香港三级三级三级 |