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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HDU 4893 - Wow! Such Sequence!(线段树)

發布時間:2025/3/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 4893 - Wow! Such Sequence!(线段树) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意:給定 n 個數的序列(1 <= n <= 100000,且初始均為 0),m 個操作(1 <= m <= 100000),操作共分三種:

1、將第 k 個數加 d;

2、求 l 到 r 區間和;

3、將 l 到 r 區間內的數,各自變為距離各自最近的斐波那契數(如果有兩個數一樣近,則取小的斐波那契數).

?

有區間求和區間修改還有點修改,很明顯的一個線段樹的題;

先將斐波那契數打表,然后每次查找時用 lower_bound 二分查找;

需要一個 sum 數組用來求和,寫兩個 update 函數分別為某個點數值增加以及區間修改成斐波那契;

為了防止超時,還需要增加一個“判斷區間是否已經成為斐波那契數”的判斷數組.

代碼如下:

#pragma comment(linker, "/STACK:102400000, 102400000") #include<cstdio> #include<cstring> #include<cctype> #include<cstdlib> #include<cmath> #include<iostream> #include<sstream> #include<iterator> #include<algorithm> #include<string> #include<vector> #include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<list> #define fin freopen("in.txt", "r", stdin) #define fout freopen("out.txt", "w", stdout) #define pr(x) cout << #x << " : " << x << " " #define prln(x) cout << #x << " : " << x << endl #define Min(a, b) a < b ? a : b #define Max(a, b) a < b ? b : a typedef long long ll; typedef unsigned long long llu; const int INT_INF = 0x3f3f3f3f; const int INT_M_INF = 0x7f7f7f7f; const ll LL_INF = 0x3f3f3f3f3f3f3f3f; const ll LL_M_INF = 0x7f7f7f7f7f7f7f7f; const double pi = acos(-1.0); const double EPS = 1e-8; const int dr[] = {0, 0, -1, 1, -1, -1, 1, 1}; const int dc[] = {-1, 1, 0, 0, -1, 1, -1, 1}; const ll MOD = 1e9 + 7; using namespace std;#define NDEBUG #include<cassert> const int MAXN = 75 + 10; const int MAXT = 100000 + 10;ll fib[MAXN << 2];void init(){fib[0] = 1; fib[1] = 2;for(int i = 2; i < MAXN; ++i) fib[i] = fib[i - 1] + fib[i - 2]; }ll sum[MAXT << 2]; bool flag[MAXT << 2];ll getfib(ll value){int lur = lower_bound(fib, fib + MAXN, value) - fib;ll one = abs(fib[lur] - value);ll two = lur > 0 ? abs(fib[lur - 1] - value) : one;if(one != two) return one < two ? fib[lur] : fib[lur - 1];return lur > 0 ? fib[lur - 1] : fib[lur]; }void PushUp(int lur){sum[lur] = sum[lur << 1] + sum[lur << 1 | 1];flag[lur] = flag[lur << 1] & flag[lur << 1 | 1]; }void Update(int lur, int x, int l, int r, int id){if(l == r){sum[id] += x;flag[id] = false;return;}int mid = (l + r) >> 1;if(lur <= mid) Update(lur, x, l, mid, id << 1);else Update(lur, x, mid + 1, r, id << 1 | 1);PushUp(id); }void Update2(int L, int R, int l, int r, int id){if(flag[id]) return;if(l == r){sum[id] = getfib(sum[id]);flag[id] = true;return;}int mid = (l + r) >> 1;if(L <= mid) Update2(L, R, l, mid, id << 1);if(mid < R) Update2(L, R, mid + 1, r, id << 1 | 1);PushUp(id); }ll Query(int L, int R, int l, int r, int id){if(L <= l && r <= R){return sum[id];}int mid = (l + r) >> 1;ll ans = 0;if(L <= mid) ans += Query(L, R, l, mid, id << 1);if(mid < R) ans += Query(L, R, mid + 1, r, id << 1 | 1);return ans; }int main(){init();int n, m;while(scanf("%d%d", &n, &m) == 2){memset(sum, 0, sizeof sum);memset(flag, false, sizeof flag);while(m--){int o; scanf("%d", &o);if(o == 1){int k; int d;scanf("%d%d", &k, &d);Update(k, d, 1, n, 1);}else if(o == 2){int l, r;scanf("%d%d", &l, &r);printf("%I64d\n", Query(l, r, 1, n, 1));}else{int l, r;scanf("%d%d", &l, &r);Update2(l, r, 1, n, 1);}}}return 0; }

?

轉載于:https://www.cnblogs.com/tyty-TianTengtt/p/6048295.html

總結

以上是生活随笔為你收集整理的HDU 4893 - Wow! Such Sequence!(线段树)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产午夜啪啪 | 国产一级片免费看 | 亚洲美女性视频 | 拔擦8x成人一区二区三区 | 午夜婷婷在线观看 | 69色| 99中文字幕在线观看 | 国产又粗又大又爽视频 | 超碰777| 美女擦边视频 | 99欧美精品 | 日韩欧美色图 | 一级特黄毛片 | 欧美在线黄 | 97操| 激情福利| 久久影片 | 足疗店女技师按摩毛片 | 麻豆资源| av先锋在线 | 精品人妻一区二区三区日产 | 欧美激情伊人 | 被黑人啪到哭的番号922在线 | 国产精品欧美激情在线 | 青青草国产成人99久久 | 亚洲第九十九页 | 亚洲国产婷婷香蕉久久久久久99 | 亚洲精品免费视频 | 久久人人爽人人人人片 | 簧片av| 亚洲av成人无码一二三在线观看 | 免费av资源| 久久久夜 | 自拍偷拍国产 | 日本四级电影 | 在线视频观看一区二区 | 免费观看成年人网站 | 日韩久久久 | 成人性生活免费看 | 成人www| 天堂免费在线视频 | 韩国美女啪啪 | 欧美a在线视频 | 无码人妻丰满熟妇区毛片18 | 金鱼妻日剧免费观看完整版全集 | 国产精品成人免费视频 | 亚洲av网址在线 | 国产区视频在线观看 | 欧美成人精品欧美一级乱黄 | 人人艹人人爽 | 精品人妻一区二区三区潮喷在线 | 国产黄色片免费在线观看 | 亚洲啊v| 国产精品不卡一区二区三区 | 奇米网久久 | 五月丁香花 | 在线免费观看亚洲视频 | 亚洲人成在线播放 | 国产精品入口久久 | 欧美国产一级 | 黄污视频在线观看 | 亚州欧美在线 | 国产黄色大全 | 国产精品不卡一区 | 亚洲精品成人网 | 91福利小视频 | 欧美综合一区二区三区 | 久久久精品影院 | 亚洲免费成人av | 国产日韩久久久 | 丰满人妻一区二区三区免费视频 | 涩涩涩涩涩涩涩涩涩涩 | 亚州色图欧美色图| 欧洲丰满少妇做爰 | 一级国产片 | 伊人久久伊人 | 毛片毛片毛片毛片 | 国产精品福利导航 | 东京久久久 | 女同亚洲精品一区二区三 | 日韩精品免费一区二区三区竹菊 | 床戏高潮做进去大尺度视频网站 | 在线视频 中文字幕 | 午夜日韩福利 | brazzers猛女系列 | 久久亚洲精品小早川怜子 | 午夜精品一区二区三区免费视频 | 性色视频在线 | 国产大片中文字幕 | 国产一区 在线播放 | 久久久xxx| 亚州av综合色区无码一区 | 国产成人在线免费 | 天堂视频免费在线观看 | 四色成人av永久网址 | 国产99久久久欧美黑人 | 特级a毛片 | 午夜免费高清视频 | 男人插入女人下面的视频 |