[NOI2014]購票
不錯的一道碼農題。
首先是個dp很顯然了。
然後展開發現是個斜率優化不錯。
但是取值有範圍的。。。。
直接單調佇列並不可以,因為凸包這個東西不是獨立貢獻答案的。
方法比較多,,
法一:
直觀的想法是,既然可以轉移的是一個區間,那麼我們能不能快速得到這個區間的凸包呢?
線段樹維護凸包應運而生。
只要在所有拆出來的區間中,分別在其維護的凸包上二分斜率即可。所有的值取min
但是如果dfs順序來做的話,必須要支援凸包的撤銷操作,,,,但是凸包的複雜度是均攤O(1)的,,,可以被特殊構造卡到O(n)。。。。
所以考慮能不能避免撤銷操作。
還有沒有什麼可以動態處理樹鏈的方法呢?
似乎只有樹鏈剖分了。這樣用dfn序維護整顆樹即可。
法二:
點分治
相關推薦
●BZOJ 3672 [Noi2014]購票
get stream 區域 fin http tin stat online str 題鏈: http://www.lydsy.com/JudgeOnline/problem.php?id=3672 題解: 斜率優化DP,點分治(樹上CDQ分治...) 這
[NOI2014]購票 --- 斜率優化 + 樹形DP + 數據結構
sort .org 希望 距離 優化 2個 兩個 將在 意義 題目描述 今年夏天,NOI在SZ市迎來了她30周歲的生日。 來自全國 n 個城市的OIer們都會從各地出發,到SZ市參加這次盛會。 全國的城市構成了一棵以SZ市為根的有根樹,每個城市與它的父親用道路連接。 為了方
[Noi2014]購票 BZOJ3672 點分治+斜率優化+CDQ分治
input CP using rar 暴力 out def #define bubuko Description 今年夏天,NOI在SZ市迎來了她30周歲的生日。來自全國 n 個城市的OIer們都會從各地出發,到SZ市參加這次盛會。全國的城市構成了一棵以SZ市
BZOJ3672 NOI2014 購票
div geo ++ mil true get 復雜度 題目 algo 傳送門 題目大意,給定一棵有根樹($1$號點是根),每個點有$5$個參數$fa,len,d,cst,unt$ $fa$表示點$x$的父節點編號,$d$表示$x$到父節點的距離。 在$x$可以花費$
BZOJ 3672: [Noi2014]購票
family 點分治 num std \n sta algorithm turn 優先 斜率優化+點分治(CDQ?) 首先處理一個分治中心到這一塊子樹的最高點(子樹的根)的鏈上的DP值 優先分治處理包含根的子樹,然後再處理其他子樹 #include<cstd
[NOI2014]購票
不錯的一道碼農題。 首先是個dp很顯然了。 然後展開發現是個斜率優化不錯。 但是取值有範圍的。。。。 直接單調佇列並不可以,因為凸包這個東西不是獨立貢獻答案的。 方法比較多,, 法一: 直觀的想法是,既然可以轉移的是一個區間,那麼我們能不能快速得到這個區間的凸包呢? 線段樹維護
BZOJ3672: [Noi2014]購票(CDQ分治,點分治)
Description 今年夏天,NOI在SZ市迎來了她30週歲的生日。來自全國 n 個城市的OIer們都會從各地出發,到SZ市參加這次盛會。 全國的城市構成了一棵以SZ市為根的有根樹,每個城市與它的父親用道路連線。
NOI2014 購票
題目描述 題解: 這位仁兄您點進來的題解是cdq+點分+斜率優化的。 吐草:細節是真多…… 先推一波式子: $dp[i]=min(dp[j]+(dis[i]-dis[j])*p[i]+q[i])=dis[i]*p[i]+q[i]+min(dp[j]-dis[j]*p[i])$ $min()$裡面那
BZOJ 3672 [NOI2014]購票 (凸優化+樹剖/樹分治)
題目大意: 略 題面傳送門 怎麼看也是一道$duliu$題= = 先推式子,設$dp[x]$表示到達$x$點到達1節點的最小花費 設$y$是$x$的一個祖先,則$dp[x]=min(dp[y]+(dis[x]-dis[y])*p[x]+q[x])$,且$dis[x]-dis[y] \leq lim[x
BZOJ3672: [Noi2014]購票【CDQ分治】【點分治】【斜率優化DP】
Description 今年夏天,NOI在SZ市迎來了她30週歲的生日。來自全國 n 個城市的OIer們都會從各地出發,到SZ市參加這次盛會。 全國的城市構成了一棵以SZ市為根的有根樹,每個城市與它的父親用道路連線。為了方便起見,我們將全國的 n 個城市用 1 到 n 的整數編號。其中SZ市的編號為 1。
3672: [Noi2014]購票 樹剖+線段樹+斜率優化
Description 今年夏天,NOI在SZ市迎來了她30週歲的生日。來自全國 n 個城市的OIer們都會從各地出發,到SZ市參加這次盛會。 全國的城市構成了一棵以SZ市為根的有根樹,每個城市與它的父親用道路連線。為了方便起見,我們將全國的
bzoj 3672 [Noi2014]購票 (線段樹+凸殼)
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <bitset> #include &l
UOJ#7. 【NOI2014】購票 | 線段樹 凸包優化DP
科學 uil 影響 現在 problem long llb noi cpp 題目鏈接 UOJ #7 題解 首先這一定是DP!可以寫出: \[f[i] = \min_{ancestor\ j} \{f[j] + (d[j] - d[i]) * p[i] + q[i]\}\]
LOJ#2249 Luogu P2305「NOI2014」購票
幾乎肝了半個下午和整個晚上 斜率優化的模型好多啊... LOJ $2249 Luogu P2305 題意 給定一棵樹,第$ i$個點如果離某個祖先$ x$的距離不超過$ L_i$,可以花費$ P_i·dist(i,x)+Q_i$的代價跳到點$ x$, 求每個點走到根的最小代價 點數不
[NOI2014]
求值 sig net 重新 一半 log name color max OJ題號:洛谷2375、BZOJ3670 思路: 一開始先寫了一個裸的KMP,在求next數組(f數組)的時候加了一個判斷j<<1是否>i+1(若大於則說明有重疊部分),後來發現並
[bzoj3670] [NOI2014][lg2375] 動物園
cnblogs void char next數組 color string pac sca %d nxt數組為KMP的next數組num[i]儲存了i前面可以匹配的串的個數。先在KMP求nxt中順便求出num最後再找到對於i的最大的前後綴不重疊的可匹配的j,ans*=(
【NOI2014】起床困難綜合癥 位運算+貪心
困難 hide 答案 none har class gif pre 位運算 這道題先求出0和-1經過處理後的答案 具體看代碼吧 #include<cstdio> #include<cstring> #include<algorithm>
【bzoj 3669】[Noi2014]魔法森林
str 得到 none data style iostream -a 說明 out Description 為了得到書法大家的真傳,小E同學下定決心去拜訪住在魔法森林中的隱士。魔法森林可以被看成一個包含個N節點M條邊的無向圖,節點標號為1..N,邊標號為1..M。初始時小E
bzoj3671 [Noi2014]隨機數生成器
col cin lan return clu ... class www src 傳送門:http://www.lydsy.com/JudgeOnline/problem.php?id=3671 【題解】 貪心從1...n*m取,開兩個5000*5000的數組就夠了,可以重
【BZOJ3671】[Noi2014]隨機數生成器 暴力
put noi2014 noi get ems amp name light urn 【BZOJ3535】[Noi2014]隨機數生成器 Description Input 第1行包含5個整數,依次為 x_0,a,b,c,d ,描述小H采用的隨機數生成