日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲女人毛片 | 巨胸爆乳美女露双奶头挤奶 | 男女男精品网站 | 爽爽视频在线观看 | 成人欧美一区二区三区黑人动态图 | 精品视频中文字幕 | 毛片.com | 久久久久这里只有精品 | 欧美日韩精品一区二区三区视频播放 | 亚洲精品乱码久久久久久麻豆不卡 | 国产一二 | 免费在线看黄视频 | 成人免费看类便视频 | 91国偷自产一区二区三区观看 | 密臀av| 伊人称影院 | 午夜久久久久久久久久 | 极品五月天 | 毛片毛片毛片毛片 | 国产精品高潮呻吟AV无码 | 黄色aaaaa| 91蝌蚪视频在线 | 人人综合网 | 99插插插 | 手机在线免费观看av | 国产91精品一区二区绿帽 | 哺乳期av | av性天堂网 | 浮生影视在线观看免费 | 四虎在线看片 | 欧美一区二区福利视频 | 欧美激情综合色综合啪啪五月 | 亚洲av综合色区无码二区爱av | 国产7777777 | 欧洲中文字幕日韩精品成人 | 国产精品久久影院 | 欧美打屁股| 精品熟妇一区二区三区 | 中出在线播放 | 人妻精品一区二区三区 | 久久青| 国产精品日韩精品欧美精品 | 久久涩 | 男人插入女人阴道视频 | 日韩大片一区 | 色呦呦日韩精品 | 色婷婷免费视频 | av日韩高清 | 99超碰在线观看 | 国产三级精品三级 | 黄色在线观看视频 | 国产精品永久免费 | 亚洲国产成人一区二区精品区 | 日韩免费淫片 | 二区不卡| 中国一级特黄录像播放 | 免费看特级毛片 | 中文字幕一区二区三区免费 | 四虎视频在线观看 | 久久av资源网 | 裸体女人a级一片 | 亚洲影视在线 | 性一交一乱一色一免费无遮挡 | 日韩制服在线 | 男生c女生| 久久av中文字幕 | 三上悠亚在线播放 | 中文字幕无码毛片免费看 | 国产午夜精品福利 | 亚洲αv| 奶水喷溅 在线播放 | 黄色一级片免费播放 | 亚洲一二三不卡 | 丁香花五月 | av视| 久久99精品国产 | 亚洲一区二区三区 | 男生插女生网站 | 黄色av一区| 黄色激情毛片 | 高清av网| 毛片免费播放 | 欧美精彩视频 | 性色av蜜臀av浪潮av老女人 | 欧美激情综合五月色丁香 | 在线观看成人小视频 | 视频一区 国产 | 天堂网亚洲 | 中文字幕免费看 | 亚洲黄v| 国产91视频在线 | 欧美色老头old∨ideo | 91精品国产91久久久久福利 | 亚欧洲精品在线视频免费观看 | 黑人精品一区二区三区不 | 丁香婷婷激情五月 | 综合精品国产 | 销魂奶水汁系列小说 | 超碰在 |