#include const in">

日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 互聯(lián)網(wǎng) > UVA12086 - Potentiometer(線段樹/樹狀數(shù)組)

UVA12086 - Potentiometer(線段樹/樹狀數(shù)組)

來源:程序員人生   發(fā)布時(shí)間:2014-10-08 08:07:47 閱讀次數(shù):2822次

UVA12086 - Potentiometer(線段樹/樹狀數(shù)組)

題目鏈接

題目大意:給你N個(gè)數(shù)字,然后有q個(gè)操作,操作類型:M代表修改某個(gè)位置的值為r,S代表查詢某一段的數(shù)字和。

解題思路:線段樹或者樹狀數(shù)組。

線段樹

#include <cstdio> #include <cstring> const int N = 8e5 + 5; int v[N]; int n; int Query (int o, int l, int r, int ql, int qr) { int m = l + (r - l) / 2; if (ql == l && r == qr) return v[o]; if (qr <= m) return Query(2 * o, l, m, ql, qr); else if (ql > m) return Query(2 * o + 1, m + 1, r, ql, qr); else return Query(2 * o, l, m, ql, m) + Query(2 * o + 1, m + 1, r, m + 1, qr); } void Update (int o, int l, int r, int p, int val) { int m = l + (r - l) / 2; if (l == r) v[o] = val; else { if (p <= m) Update (2 * o, l, m, p, val); else Update (2 * o + 1, m + 1, r, p, val); v[o] = v[2 * o] + v[2 * o + 1]; } } void solve () { char str[10]; int x, y, r; while (scanf ("%s", str) && str[0] != 'E') { if (str[0] == 'M') { scanf ("%d%d", &x, &y); printf ("%d ", Query (1, 1, n, x, y)); } else { scanf ("%d%d", &x, &r); Update (1, 1, n, x, r); } } } int main () { int cas = 0; int num; while (scanf ("%d", &n) && n) { if (cas) printf (" "); printf ("Case %d: ", ++cas); memset (v, 0, sizeof (v)); for (int i = 1; i <= n; i++) { scanf ("%d", &num); Update (1, 1, n, i, num); } solve(); } return 0; }

樹狀數(shù)組

#include <cstdio> #include <cstring> const int maxn = 2e5 + 5; int lowbit (int x) { return x&-x; } int n; int A[maxn], C[maxn]; void Add (int x, int d) { while (x <= n) { C[x] += d; x += lowbit(x); } } int Sum (int x) { int ret = 0; while (x > 0) { ret += C[x]; x -= lowbit(x); } return ret; } void solve () { char str[10]; int x, r, y; while (scanf ("%s", str) && str[0] != 'E') { if (str[0] == 'M') { scanf ("%d%d", &x, &y); printf ("%d ", Sum (y) - Sum (x - 1)); } else { scanf ("%d%d", &x, &r); Add(x, r - A[x]); A[x] = r;//這個(gè)地方要記得修改 } } } int main () { int cas = 0; while (scanf ("%d", &n) && n) { if (cas) printf (" "); memset (C, 0, sizeof (C)); for (int i = 1; i <= n; i++) { scanf ("%d", &A[i]); Add(i, A[i]); } printf ("Case %d: ", ++cas); solve(); } return 0; }
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 日韩精品毛片 | 久久久天堂国产精品女人 | 很黄的网站在线观看 | 福利视频网址导航 | 一区二区国产精品 | 国产免费高清 | 亚洲午夜网 | 日本免费中文字幕 | 亚洲乱码一区二区三区在线观看 | 黄色片在线播放 | 蜜臀网 | 丰满少妇久久久久久久 | 国产ai视频 | 在线国产福利 | 91n在线观看| 日韩视频免费在线观看 | 亚洲三区视频 | 久久久久久毛片免费看 | 久久久精品| 亚洲激情欧美激情 | 国产操片 | 久久大| 99国产精品久久久久久久久久 | 色婷婷中文 | 亚洲精品国产一区 | 亚洲电影中文字幕 | 欧美日本韩国 | 激情在线视频 | 日韩欧美精品 | 国产91九色| 日韩不卡一区二区三区 | 91精品区 | 天堂av在线免费观看 | 国产 日韩 欧美 在线 | 精品粉嫩aⅴ一区二区三区四区 | 日本国产精品 | 久久精品国产一区二区三区不卡 | 玖玖色资源 | 中文字幕欧美激情 | 成人精品电影 | 欧美在线观看视频 |