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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

bzoj2809

發(fā)布時(shí)間:2025/6/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bzoj2809 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

可以先窮舉那個(gè)是管理者,然后就發(fā)現(xiàn)
其實(shí)就是求每個(gè)子樹(shù)選盡可能多的人,使薪水和小于m
這顯然是從小往大選,可以用啟發(fā)式合并
但是用主席樹(shù)寫(xiě)的更簡(jiǎn)單一點(diǎn)吧,dfs序之后
每課線段樹(shù)不僅維護(hù)出現(xiàn)出現(xiàn)個(gè)數(shù),然后在維護(hù)一個(gè)區(qū)間和(未離散化之前的)
然后類(lèi)似查找第k大就可以解決了

1 type node=record 2 po,next:longint; 3 end; 4 link=record 5 l,r,s:longint; 6 sum:int64; 7 end; 8 9 var tree:array[0..100010*20] of link; 10 v,a,b,c,e,sa,rank,h,p:array[0..100010] of longint; 11 w:array[0..100010] of node; 12 n,m,t,tot,len,x,root,i,s:longint; 13 ans:int64; 14 15 function max(a,b:int64):int64; 16 begin 17 if a>b then exit(a) else exit(b); 18 end; 19 20 procedure swap(var a,b:longint); 21 var c:longint; 22 begin 23 c:=a; 24 a:=b; 25 b:=c; 26 end; 27 28 procedure sort(l,r: longint); 29 var i,j,x:longint; 30 begin 31 i:=l; 32 j:=r; 33 x:=a[(l+r) div 2]; 34 repeat 35 while (a[i]<x) do inc(i); 36 while (x<a[j]) do dec(j); 37 if not(i>j) then 38 begin 39 swap(a[i],a[j]); 40 swap(c[i],c[j]); 41 inc(i); 42 j:=j-1; 43 end; 44 until i>j; 45 if l<j then sort(l,j); 46 if i<r then sort(i,r); 47 end; 48 49 procedure add(x,y:longint); 50 begin 51 inc(len); 52 w[len].po:=y; 53 w[len].next:=p[x]; 54 p[x]:=len; 55 end; 56 57 procedure dfs(x:longint); 58 var i,y:longint; 59 begin 60 i:=p[x]; 61 inc(len); 62 a[len]:=x; 63 c[x]:=len; 64 while i<>0 do 65 begin 66 dfs(w[i].po); 67 i:=w[i].next; 68 end; 69 e[x]:=len; 70 end; 71 72 function build(l,r:longint):longint; 73 var m,q:longint; 74 begin 75 inc(t); 76 if l=r then exit(t) 77 else begin 78 q:=t; 79 m:=(l+r) shr 1; 80 tree[q].l:=build(l,m); 81 tree[q].r:=build(m+1,r); 82 exit(q); 83 end; 84 end; 85 86 function add(l,r,last,x,y:longint):longint; 87 var m,q:longint; 88 begin 89 inc(t); 90 if l=r then 91 begin 92 tree[t].s:=tree[last].s+1; 93 tree[t].sum:=tree[last].sum+y; 94 exit(t); 95 end 96 else begin 97 q:=t; 98 m:=(l+r) shr 1; 99 if x<=m then 100 begin 101 tree[q].r:=tree[last].r; 102 tree[q].l:=add(l,m,tree[last].l,x,y); 103 end 104 else begin 105 tree[q].l:=tree[last].l; 106 tree[q].r:=add(m+1,r,tree[last].r,x,y); 107 end; 108 tree[q].sum:=tree[tree[q].l].sum+tree[tree[q].r].sum; 109 tree[q].s:=tree[tree[q].l].s+tree[tree[q].r].s; 110 exit(q); 111 end; 112 end; 113 114 function ask(l,r,a,b,k:longint):longint; 115 var m,s:longint; 116 p:int64; 117 118 begin 119 if l=r then 120 begin 121 p:=tree[b].sum-tree[a].sum; 122 if k>=p then exit(tree[b].s-tree[a].s) //這里要注意下 123 else exit(k div sa[l]); 124 end 125 else begin 126 m:=(l+r) shr 1; 127 p:=tree[tree[b].l].sum-tree[tree[a].l].sum; 128 if p>k then 129 exit(ask(l,m,tree[a].l,tree[b].l,k)) 130 else begin 131 s:=tree[tree[b].l].s-tree[tree[a].l].s; 132 exit(s+ask(m+1,r,tree[a].r,tree[b].r,k-p)); 133 end; 134 end; 135 end; 136 137 begin 138 readln(n,m); 139 for i:=1 to n do 140 begin 141 readln(x,b[i],v[i]); 142 if x=0 then root:=i; 143 add(x,i); 144 end; 145 for i:=1 to n do 146 begin 147 a[i]:=b[i]; 148 c[i]:=i; 149 end; 150 sort(1,n); 151 tot:=1; 152 rank[c[1]]:=1; 153 sa[1]:=a[1]; 154 for i:=2 to n do 155 begin 156 if a[i]<>a[i-1] then 157 begin 158 inc(tot); 159 sa[tot]:=a[i]; 160 end; 161 rank[c[i]]:=tot; 162 end; 163 len:=0; 164 dfs(root); 165 h[0]:=build(1,tot); 166 for i:=1 to n do 167 h[i]:=add(1,tot,h[i-1],rank[a[i]],b[a[i]]); 168 for i:=1 to n do 169 begin 170 s:=ask(1,tot,h[c[i]-1],h[e[i]],m); 171 ans:=max(ans,int64(v[i])*int64(s)); 172 end; 173 writeln(ans); 174 end. View Code

?

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

總結(jié)

以上是生活随笔為你收集整理的bzoj2809的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 成人黄色在线观看 | 毛片毛片毛片毛片毛片毛片 | 日本黄色高清 | 亚洲国产第一页 | 免费看一级片 | 欧美在线一二 | 日韩成人在线影院 | 五月激情久久 | 亚洲综合国产 | 四虎影院免费视频 | 日本高清久久 | 欧美午夜久久 | 欧美视频精品 | 草逼免费视频 | 久久久久久国产精品一区 | 日韩在线一二三区 | 国产性猛交╳xxx乱大交 | 日韩欧美精品在线视频 | 久久综合社区 | 精品久久久久久久久中文字幕 | 爱草在线视频 | 在线视频精品免费 | 熟女人妻aⅴ一区二区三区60路 | 三级免费看 | 中文字幕乱码一区二区三区 | 日韩污污 | 成人羞羞免费 | 日韩五月 | 国产aa大片| 精品福利视频一区二区 | 国产毛片毛片毛片毛片毛片 | 午夜九九 | 中国特级黄色片 | mm131丰满少妇人体欣赏图 | 免费特级黄色片 | 黄色一级在线视频 | 日韩福利视频网 | 撸啊撸在线视频 | 久久久久a | 欧美久久网 | 黄色无毒网站 | av永久网站| 国产精欧美一区二区三区蓝颜男同 | 婷婷成人在线 | 久久短视频 | 久久精品人人爽 | 熟女毛毛多熟妇人妻aⅴ在线毛片 | 男人你懂的网站 | 日韩经典一区二区 | 欧洲精品久久一区二区 | 米奇狠狠干 | 美日韩丰满少妇在线观看 | 五月天久久久久久 | 亚洲精品视屏 | aaa在线视频 | 久久久久国色av免费观看性色 | 亚洲第一色网站 | 在线91观看| 国产精品欧美性爱 | 樱空桃在线观看 | 国产精品成人无码免费 | 日韩一区二区视频在线 | 人妻少妇精品视频一区二区三区 | 夜夜草天天草 | 五月天激情社区 | 久久久久久久久久免费 | 欧美韩国日本 | 国产精品成人一区二区网站软件 | 申鹤乳液狂飙 | 天天做日日做 | 久久免费影院 | 美女流白浆视频 | 成人午夜激情影院 | 妞干网精品 | 99国产在线播放 | 美女露胸无遮挡 | www.久久精品视频 | 国产美女www| av女优一区 | 人人av在线 | 午夜视频污| 亚洲第三色 | 美女破处视频 | 亚洲精品a级 | 国产福利在线导航 | 熟女俱乐部一区二区 | 欣赏asian国模裸体pics | 日韩精品www | 日本黄色片. | 狠狠网 | 少妇av一区二区三区无码 | 精品人妻大屁股白浆无码 | 国产又黄又粗又爽 | 开心激情播播网 | 每日在线更新av | 末发成年娇小性xxxxx | 久久网一区二区 | av5566| 亚洲一二三四在线 |