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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

A Simple Problem with Integers POJ - 3468 (线段树)

發布時間:2023/12/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 A Simple Problem with Integers POJ - 3468 (线段树) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

思路:線段樹,區間更新,區間查找

1 #include<iostream> 2 #include<vector> 3 #include<string> 4 #include<cmath> 5 #include<set> 6 #include<algorithm> 7 #include<cstdio> 8 #include<map> 9 #include<cstring> 10 #include<list> 11 12 #define MAXSIZE 100010 13 14 using namespace std; 15 16 long long tree[4*MAXSIZE]; 17 long long lz[4*MAXSIZE]; 18 int N, Q; 19 20 void init() 21 { 22 memset(tree, 0, sizeof(tree)); 23 memset(lz, 0, sizeof(lz)); 24 } 25 26 void build(int node, int l, int r) 27 { 28 if(l == r) 29 { 30 scanf("%lld", &tree[node]); 31 return; 32 } 33 34 int mid = (l+r)/2; 35 build(node*2, l, mid); 36 build(node*2+1, mid+1, r); 37 38 tree[node] = tree[node*2] + tree[node*2+1]; 39 } 40 41 void push_down(int node, int l, int r) 42 { 43 if(lz[node]) 44 { 45 int mid = (l+r)/2; 46 lz[node*2] += lz[node]; 47 lz[node*2+1] += lz[node]; 48 tree[node*2] += (mid-l+1)*lz[node]; 49 tree[node*2+1] += (r-mid)*lz[node]; 50 lz[node] = 0; 51 } 52 } 53 54 void update_range(int node, int l, int r, int L, int R, int add) 55 { 56 if(l <= L && r >= R) 57 { 58 lz[node] += add; 59 tree[node] += (R-L+1)*add; 60 return; 61 } 62 push_down(node, L, R); 63 int mid = (L+R)/2; 64 if(mid >= l) 65 update_range(node*2, l, r, L, mid, add); 66 if(mid < r) 67 update_range(node*2+1, l, r, mid+1, R, add); 68 tree[node] = tree[node*2] + tree[node*2+1]; 69 } 70 71 long long query_range(int node, int l, int r, int L, int R) 72 { 73 if(l <= L && r >= R) 74 { 75 return tree[node]; 76 } 77 push_down(node, L, R); 78 int mid = (L+R)/2; 79 long long sum = 0; 80 if(mid >= l) 81 sum += query_range(node*2, l, r, L, mid); 82 if(mid < r) 83 sum += query_range(node*2+1, l, r, mid+1, R); 84 85 return sum; 86 } 87 88 89 90 int main() 91 { 92 scanf("%d%d", &N, &Q); 93 init(); 94 build(1, 1, N); 95 while(Q--) 96 { 97 char ch; 98 scanf(" %c", &ch); 99 if(ch == 'Q') 100 { 101 int a, b; 102 scanf("%d%d", &a, &b); 103 printf("%lld\n", query_range(1, a, b, 1, N)); 104 } 105 else if(ch == 'C') 106 { 107 int a, b, c; 108 scanf("%d%d%d", &a, &b, &c); 109 update_range(1, a, b, 1, N, c); 110 } 111 } 112 113 114 return 0; 115 }

?

轉載于:https://www.cnblogs.com/FengZeng666/p/11458279.html

總結

以上是生活随笔為你收集整理的A Simple Problem with Integers POJ - 3468 (线段树)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国精品人妻无码一区二区三区喝尿 | 中文字幕麻豆 | 美国少妇性做爰 | 国产91久| 日本一区视频在线观看 | 日韩欧美一区二区在线观看 | 97自拍偷拍视频 | 国产精品成人久久电影 | 久久久96人妻无码精品 | 一区日韩| 色伊人 | 亚洲美女精品 | 97免费看 | 91久久极品少妇xxxxⅹ软件 | 欧美专区在线播放 | 色一情一乱一乱一区91av | 12av毛片| 精品女同一区二区 | 4虎最新网址 | 好吊色这里只有精品 | 影音先锋制服丝袜 | 欧洲中文字幕日韩精品成人 | 日日射日日操 | 日本高清视频一区二区三区 | 亚洲精品伦理 | 亚洲 国产 欧美 日韩 | 亚洲区自拍偷拍 | 成人理论视频 | 日本啪啪啪一区二区 | 成人一级毛片 | 国产精品18久久久久久久久 | 国产欧美精品一区二区色综合 | 17草在线| 男女啪动最猛动态图 | 无码播放一区二区三区 | 国产免费一区二区三区四区五区 | 性高潮久久久久久久久 | 三叶草欧洲码在线 | 午夜亚洲福利 | 三上悠亚一区二区三区 | 蜜桃视频色 | 久久久久久国产精品免费 | 欧美视频黄色 | 张柏芝54张无删码视频 | 欧美成人一级 | 久久精品视频网站 | 午夜视频1000 | 国产在线视频99 | 国产xxxx裸体xxx免费 | 国产视频二区三区 | 就要日就要操 | 中文字幕一区二区三区久久久 | 久久久久无码精品 | 91精品国产乱码久久久久 | 黄色大片在线免费观看 | 91精品久久久久久综合五月天 | 欧美三级少妇高潮 | 国产激情啪啪 | 成人黄页网站 | 中文字幕高清在线观看 | 国产在线一二区 | 国内少妇精品 | 成人调教视频 | 亚洲永久免费 | 91精品国产综合久久久蜜臀图片 | 国产黄色一区 | 国产黄色大全 | 免费日批视频 | 国产欧美一区二区三区在线老狼 | 91全免费| 99久久99久久精品国产片果冰 | 国产主播自拍av | 欧美综合亚洲图片综合区 | 亚洲一区二区三区免费看 | 三级在线看中文字幕完整版 | 亚洲狼人天堂 | 人妻无码久久精品人妻 | 啪啪视屏 | 在线观看免费国产 | 在线久草| 日本乱码一区 | 国产无码精品视频 | 欧美真人性野外做爰 | 欧美色图一区 | 欧美日韩国产高清 | 亚洲天堂视频在线播放 | 国产思思| 久久国产一区 | 国产精品资源网站 | 中文字幕亚洲第一 | 精品视频一区二区三区四区 | 中文精品在线观看 | 综合激情婷婷 | 久久久最新| 亚洲乱码国产乱码精品精98午夜 | 国产精品77 | 欧美搞逼视频 | 国产亚洲成av人片在线观看桃 | 秋霞国产午夜精品免费视频 |