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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

hdu3966 树链剖分+线段树 裸题

發布時間:2023/12/18 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu3966 树链剖分+线段树 裸题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HDU - 3966?

題意:給一顆樹,3種操作,Q u 查詢u節點的權值,I a b c 對a到b的路徑上每個點的點權增加c,D a b c 對a b 路徑上所有點的點權減少c

思路:樹鏈剖分+線段樹,2個問題,第一,如果是先建樹再輸入點的點權,記錄tip(點映射到線段樹后的位置),如果先輸入點權,再建樹,不僅要記錄tip還要記錄ran(線段樹上某個位置上的點對應的樹上點的序號,與tip是相互映射);第二,連接起線段樹和樹鏈剖分的是get函數,區間操作才需要用到get函數,單點操作直接在線段樹上操作就可以。上面第一點尤其要注意,最重要的是理解tip和ran的意義 ,還有一點,多組輸入son數組要初始化清空

AC代碼:

#include "iostream" #include "string.h" #include "stack" #include "queue" #include "string" #include "vector" #include "set" #include "map" #include "algorithm" #include "stdio.h" #include "math.h" #define ll long long #define bug(x) cout<<x<<" "<<"UUUUU"<<endl; #define mem(a) memset(a,0,sizeof(a)) #define mp(x,y) make_pair(x,y) #define pb(x) push_back(x) #define lrt (rt*2) #define rrt (rt*2+1) using namespace std; const long long INF = 1e18+1LL; const int inf = 1e9+1e8; const int N=51000; const ll mod=1e9+7;int n,m,q,a[N]; int to[N<<1],nex[N<<1],head[N],tot=1; int lazy[N<<2]; int siz[N],son[N],tip[N],dep[N],top[N],fa[N],ran[N],cnt; void add(int u, int v){to[tot]=v;nex[tot]=head[u];head[u]=tot++; } void dfs1(int u, int f){siz[u]=1;son[u]=0;fa[u]=f;dep[u]=dep[f]+1;for(int i=head[u]; i!=-1; i=nex[i]){int v=to[i];if(v==f) continue;dfs1(v,u);siz[u]+=siz[v];if(siz[son[u]]<siz[v]) son[u]=v;} } void dfs2(int u, int tp){top[u]=tp;tip[u]=++cnt;ran[cnt]=u;if(son[u]) dfs2(son[u],tp);for(int i=head[u]; i!=-1; i=nex[i]){int v=to[i];if(v==fa[u] || v==son[u]) continue;dfs2(v,v);} } void push_down(int rt){lazy[lrt]+=lazy[rt];lazy[rrt]+=lazy[rt];lazy[rt]=0; } void creat(int rt, int l, int r){if(l==r){lazy[rt]=a[ran[l]];return;}int mid=l+r>>1;creat(lrt, l, mid);creat(rrt, mid+1, r); } void up(int rt, int l, int r, int L, int R, int w){if(l==L && r==R){lazy[rt]+=w;return;}push_down(rt);int mid=l+r>>1;if(R<=mid) up(lrt, l, mid, L, R, w);else if(L>mid) up(rrt, mid+1, r, L, R, w);else up(lrt, l, mid, L, mid, w), up(rrt, mid+1, r, mid+1, R, w); } int query(int rt, int l, int r, int p){if(l==r){return lazy[rt];}push_down(rt);int mid=l+r>>1;if(p<=mid) return query(lrt, l, mid, p);else return query(rrt, mid+1, r, p); } void update(int u, int v, int w){while(top[u] != top[v]){if(dep[top[u]]<dep[top[v]]) swap(u,v);up(1,1,n,tip[top[u]],tip[u],w);u=fa[top[u]];}if(dep[u]>dep[v]) swap(u,v);up(1,1,n,tip[u],tip[v],w); } int main(){//ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);while(scanf("%d%d%d",&n,&m,&q)!=EOF){memset(head,-1,sizeof(head));mem(lazy),tot=1,cnt=0,dep[1]=0;int u,v,t;char c[10];for(int i=1; i<=n; ++i){scanf("%d",&a[i]);}for(int i=1; i<=m; ++i){scanf("%d%d",&u, &v);add(u,v);add(v,u);}dfs1(1,1);dfs2(1,1);creat(1,1,n);while(q--){scanf("%s%d", c, &u);if(c[0]=='I' || c[0]=='D' ){scanf("%d%d",&v, &t);if(c[0]=='D') t=-t;update(u,v,t);}else printf("%d\n",query(1,1,n,tip[u]));}}return 0; }

?

轉載于:https://www.cnblogs.com/max88888888/p/7250189.html

總結

以上是生活随笔為你收集整理的hdu3966 树链剖分+线段树 裸题的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 99婷婷 | 黄色av网页 | 国产欧美一区二区三区在线看 | 少妇久久久久 | 男男play呻吟动漫网站 | 熟女俱乐部五十路六十路av | 国产主播精品在线 | 国产三级91| 国模大尺度自拍 | 日本午夜网 | 久久久久无码国产精品不卡 | 台湾av在线播放 | 亚洲免费av一区二区 | 国产精品麻豆果冻传媒在线播放 | 天天做天天操 | 欧美日韩精品一区二区三区 | 午夜在线播放视频 | 免费看国产精品 | 亚洲性图一区二区 | 天天综合天天做天天综合 | 手机看片日韩日韩 | 美女隐私黄www网站动漫 | 国产精品羞羞答答 | 国产在线精品播放 | 天堂av手机版 | 人妻少妇无码精品视频区 | 亚洲毛片儿 | 日本黄色片在线播放 | 久久福利视频导航 | 欧美狠狠干 | 色呦呦免费 | 日韩乱码在线观看 | 日韩毛片在线播放 | 国产chinese男男网站大全 | a级片国产| 91精品国产91久久久久久吃药 | 影音先锋丝袜制服 | 熟妇人妻无码xxx视频 | 色很久| 美女被日网站 | 成人在线观看一区 | 好吊视频一区二区三区四区 | 美女被爆操网站 | 99午夜视频| 琪琪色网 | av免费精品| 求一个黄色网址 | 国产福利小视频 | 日韩小视频网站 | 五月天一区二区三区 | 国产亚洲精品一区二区三区 | caoporn成人| 97人妻精品一区二区三区视频 | 99国产视频在线 | 娇妻高潮浓精白浆xxⅹ | 国产馆在线观看 | 日韩成人高清视频在线观看 | 亚洲欧美色图在线 | 不卡一区在线 | 亚洲艹 | av在线播放不卡 | 老熟女高潮一区二区三区 | 国产一区二区三区自拍 | 国产精品久久久久久人妻精品动漫 | 国精无码欧精品亚洲一区蜜桃 | 日韩视频 中文字幕 | 黄色91免费观看 | 一级日韩一级欧美 | 中文字幕在线观看不卡 | 一区二区高潮 | 黄色一区二区三区四区 | 色婷婷色丁香 | 97在线视频免费 | 日韩综合在线视频 | 日日夜夜天天综合 | 91在线网 | 美女又爽又黄视频 | 免费在线观看污 | 国产免费一区二区三区视频 | 一级黄色片在线看 | 欧美日韩第一页 | 亚洲欧美激情另类 | 亚洲国产精品久久久久爰性色 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 国产成人在线视频免费观看 | 欧美一区一区 | 亚洲最大av网站 | 精品98| 欧美精品一区二区久久婷婷 | 精品国产精品网麻豆系列 | 五月伊人网 | 91在线精品视频 | 日韩欧美中字 | 黄色亚洲精品 | 久久不卡视频 | 99夜色 | 在线观看aa| 亚洲伦理网站 | 日韩国产区|