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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【BZOJ5469】[FJOI2018]领导集团问题(动态规划,线段树合并)

發(fā)布時間:2025/3/16 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【BZOJ5469】[FJOI2018]领导集团问题(动态规划,线段树合并) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【BZOJ5469】[FJOI2018]領(lǐng)導(dǎo)集團問題(動態(tài)規(guī)劃,線段樹合并)

 題面

BZOJ
洛谷

題解

題目就是讓你在樹上找一個最大的點集,使得兩個點如果存在祖先關(guān)系,那么就要滿足祖先的權(quán)值要小于等于兒子的權(quán)值。
首先離散權(quán)值。
考慮一個暴力\(dp\),設(shè)\(f[i][j]\)表示以\(i\)為根,子樹中被選擇的最小值為\(j\)時能夠被選出的最大點樹。然后xjb轉(zhuǎn)移一下就寫出了一個\(O(n^3)\)的優(yōu)秀做法。
然后把狀態(tài)從恰好變成至少,然后就得到了一個\(O(n^2)\)的做法。
考慮\(O(n^2)\)\(dp\),本質(zhì)上就是在維護一個后綴的最大值。
不難發(fā)現(xiàn)后綴最大值一定是不降的。
考慮對于后綴進行差分,每次相當(dāng)于現(xiàn)在\(w[i]\)位置加一,然后往前更新一段,直到下一個差分?jǐn)?shù)組上有\(1\)的位置。
那么用線段樹合并就可以解決這個問題,給\(w[i]\)位置加一,然后線段樹上二分找到上一個為\(1\)的位置然后把它減一就好了。

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define MAX 200200 inline int read() {int x=0;bool t=false;char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')t=true,ch=getchar();while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();return t?-x:x; } struct Line{int v,next;}e[MAX<<1]; int h[MAX],cnt=1; inline void Add(int u,int v){e[cnt]=(Line){v,h[u]};h[u]=cnt++;} int n,ans,w[MAX],S[MAX],tot,rt[MAX]; int ls[MAX*18],rs[MAX*18],t[MAX*18],node; void Modify(int &x,int l,int r,int p) {if(!x)x=++node;t[x]+=1;if(l==r)return;int mid=(l+r)>>1;if(p<=mid)Modify(ls[x],l,mid,p);else Modify(rs[x],mid+1,r,p); } bool Flag; void Calc(int x) {if(!x)return;t[x]-=1;if(t[rs[x]])Calc(rs[x]);else Calc(ls[x]); } void Minus(int x,int l,int r,int p) {if(l==r)return;int mid=(l+r)>>1;if(p<=mid)Minus(ls[x],l,mid,p);else{Minus(rs[x],mid+1,r,p);if(!Flag&&t[ls[x]])Flag=true,Calc(ls[x]);}if(Flag)t[x]-=1; } void Merge(int &x,int &y) {if(!x||!y){x|=y;return;}t[x]+=t[y];Merge(ls[x],ls[y]);Merge(rs[x],rs[y]); } void dfs(int u) {for(int i=h[u];i;i=e[i].next)dfs(e[i].v),Merge(rt[u],rt[e[i].v]);Modify(rt[u],1,tot,w[u]);Flag=false;Minus(rt[u],1,tot,w[u]); } int main() {n=read();for(int i=1;i<=n;++i)S[++tot]=w[i]=read();for(int i=2;i<=n;++i)Add(read(),i);S[++tot]=1e9+1;sort(&S[1],&S[tot+1]);tot=unique(&S[1],&S[tot+1])-S-1;for(int i=1;i<=n;++i)w[i]=lower_bound(&S[1],&S[tot+1],w[i])-S;dfs(1);printf("%d\n",t[rt[1]]);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/cjyyb/p/10446523.html

總結(jié)

以上是生活随笔為你收集整理的【BZOJ5469】[FJOI2018]领导集团问题(动态规划,线段树合并)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 轮番上阵免费观看在线电影 | 在线视频免费观看 | 一区二区高清 | 51吃瓜网今日 | 久久久久亚洲av成人毛片韩 | 超黄av| 午夜视频在线免费观看 | 中文字幕无人区二 | 亚洲国产成人一区 | 双性尿奴穿贞c带憋尿 | 天天干天天操天天玩 | 欧美群交射精内射颜射潮喷 | 久久国产精品国语对白 | 日产av在线播放 | 亚洲一级在线播放 | 亚洲午夜无码久久 | 亚洲激情视频在线 | 男女男精品网站 | 男女裸体无遮挡做爰 | 夜夜夜网| 国产日韩免费 | 亚洲精品高潮久久久久久久 | 一级片成人 | 2018天天干天天操 | 色狠久| 日本成人一区二区 | 亚洲女女做受ⅹxx高潮 | 亚洲综合无码一区二区 | 超碰成人福利 | 午夜在线免费观看视频 | 91久久久久久久久久久久 | av番号网 | 视频在线一区 | 干干天天 | 久久爱一区二区 | 久久国产精品国产精品 | 热久久91| 国产又色又爽又黄的 | 内射中出日韩无国产剧情 | 日韩精品人妻中文字幕有码 | 欧美色成人 | 久久久久久电影 | 中文字幕视频免费观看 | 国产一区二区三区免费在线观看 | 国产无遮挡18禁无码网站不卡 | 亚洲私人影院 | 91视频日本 | 国产精品无码自拍 | 国产第8页| 女优一区| 天天综合欧美 | 久久精品国产熟女亚洲AV麻豆 | 有声小说 成人专区 | 久爱视频在线 | 久久国产视频网站 | 琪琪原网址| 中文字幕日韩欧美一区二区 | 又黄又爽又刺激的视频 | 黄色片网站视频 | 少妇又紧又色又爽又刺激 | 国产精品无码一区二区三区在线看 | 免费在线观看小视频 | 久久久久久9999 | wwwxx在线| 精品国产AV色欲天媒传媒 | 精品人妻人伦一区二区有限公司 | 久久久久亚洲av成人网人人软件 | 小视频在线观看 | 日本一本在线观看 | 午夜a级片| 日出白浆视频 | 99热国| 在线色网站 | 久久视频一区二区三区 | 国产精品国色综合久久 | 豆花免费跳转入口官网 | 啪啪免费av | 久久人人爽人人人人片 | 在线欧美| 91成人免费观看 | 中国美女囗交视频 | 国产精品久久久久久婷婷天堂 | 中出视频在线观看 | 老司机免费精品视频 | 一眉道姑 | 国产av一区不卡 | 一级特黄aaa大片 | 91成人一区二区三区 | 91网址入口 | 午夜精品久久久久久久 | 久久精品亚洲精品国产欧美 | 久久久九九 | 亚洲人吸女人奶水 | 黄片毛片在线免费观看 | 欧美性大交 | 香蕉污视频在线观看 | 日韩精品电影在线观看 | 蜜桃视频无码区在线观看 | 色婷婷综合久久久久中文字幕 |