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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

AtCoder AGC007E Shik and Travel (二分、DP、启发式合并)

發(fā)布時間:2025/3/15 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AtCoder AGC007E Shik and Travel (二分、DP、启发式合并) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目鏈接

https://atcoder.jp/contests/agc007/tasks/agc007_e

題解

首先有個很樸素的想法是,二分答案\(mid\)后使用可行性DP, 設\(dp[u][x][y]\)表示\(u\)子樹內(nèi)是否可以找到一條路徑,在經(jīng)過第一個葉子前路程是\(x\), 經(jīng)過最后一個葉子前路程是\(y\).
這個DP顯然做了很多無用功,比如我們發(fā)現(xiàn)完全可以只記錄true的狀態(tài)\((x,y)\),進一步發(fā)現(xiàn)如果合法狀態(tài)\((x,y)\)存在另一合法狀態(tài)\((x',y')\)滿足\(x'\le x,y'<\le y\), 那么就沒有必要存儲\((x,y)\)了。于是我們按\(x\)遞增的順序存儲\((x,y)\),那么\(y\)一定是遞減的。
這樣簡化之后,我們發(fā)現(xiàn)一個神奇的性質: 設\(S_u\)\(u\)記錄的集合,\(i\)\(j\)為兒子,那么\(|S_u|\le 2\min(|S_i|,|S_j|)\). 這是因為\(x\)\(y\)的取值都各有\(\min(|S_i|,|S_j|)\)種。
考慮合并的過程: 假設路徑的開頭在\(i\)內(nèi),那么我們需要找到\((x_1,y_1)\in S_i, (x_2,y_2)\in S_j\), 若\(y_1+v_i+v_j+x_2\le mid\), 則把\((x_1+v_i,y_2+w_j)\)加入\(S_u\). 這個顯然可以用雙指針優(yōu)化. 路徑的開頭在\(j\)內(nèi)也同理。
類似啟發(fā)式合并可分析復雜度。算上二分總復雜度\(O(n\log^2n)\).

代碼

#include<cstdio> #include<cstdlib> #include<iostream> #include<cassert> #include<vector> #define llong long long #define pll pair<llong,llong> #define mkpr make_pair using namespace std;const int N = 1<<17; int son[N+3][2]; llong w[N+3]; vector<pll> dp[N+3]; vector<pll> aux1,aux2; int n,en; llong mid;void dfs(int u) { // printf("dfs %d\n",u);dp[u].clear(); int ls = son[u][0],rs = son[u][1];if(!ls){dp[u].push_back(mkpr(0ll,0ll));return;}dfs(ls); dfs(rs);aux1.clear(); aux2.clear();if(dp[rs].size()){int j = 0;for(int i=0; i<dp[ls].size(); i++){while(j<dp[rs].size()-1 && dp[rs][j+1].first+dp[ls][i].second+w[ls]+w[rs]<=mid) {j++;}if(j<dp[rs].size() && dp[rs][j].first+dp[ls][i].second+w[ls]+w[rs]<=mid) {aux1.push_back(mkpr(dp[ls][i].first+w[ls],dp[rs][j].second+w[rs]));}}}if(dp[ls].size()){int j = 0;for(int i=0; i<dp[rs].size(); i++){while(j<dp[ls].size()-1 && dp[ls][j+1].first+dp[rs][i].second+w[ls]+w[rs]<=mid) {j++;}if(j<dp[ls].size() && dp[ls][j].first+dp[rs][i].second+w[ls]+w[rs]<=mid) {aux2.push_back(mkpr(dp[rs][i].first+w[rs],dp[ls][j].second+w[ls]));}}}int j = 0,k = 0; llong cur = 1ll<<34;while(j<aux1.size() || k<aux2.size()){if(k==aux2.size() || (j<aux1.size() && aux1[j].first<=aux2[k].first)){if(aux1[j].second<cur) {dp[u].push_back(aux1[j]); cur = aux1[j].second;}j++;}else{if(aux2[k].second<cur) {dp[u].push_back(aux2[k]); cur = aux2[k].second;}k++;}} }bool check() {dfs(1);if(dp[1].size()) {return true;}else {return false;} }int main() {scanf("%d",&n);for(int i=2; i<=n; i++){int u; llong x; scanf("%d%lld",&u,&x);w[i] = x; if(son[u][0]) son[u][1] = i; else son[u][0] = i;}llong left = 0ll,right = 1ll<<34;while(left<right){mid = left+((right-left)>>1) // printf("mid=%lld\n",mid);bool ok = check();if(ok) {right = mid;}else {left = mid+1;}}printf("%lld\n",right);return 0; }

總結

以上是生活随笔為你收集整理的AtCoder AGC007E Shik and Travel (二分、DP、启发式合并)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本久久久久久久久久 | 青青青在线观看视频 | xx69欧美 | 中文字幕在线看片 | 成人三级晚上看 | 在线观看免费黄网站 | 亚洲三级网站 | 一级高清视频 | 精品国产欧美 | 不卡av网站 | 欧美激情视频一区 | 欧美人妻少妇一区二区三区 | 在线观看中文字幕一区二区 | 夜夜骚网站 | 8090av| 色女人天堂 | 国产一级淫片a | 91精品免费观看 | 日本高清视频一区二区三区 | 蜜臀av粉嫩av懂色av | 国产黄色观看 | 中文字幕av免费在线观看 | 亚洲综合视频在线观看 | 欧美日本不卡 | aise爱色av | 99视频免费看| 亚洲视频六区 | 国产精品视频免费网站 | 精品国产乱码久久久久久蜜臀 | 亚洲天堂小说 | 国产欧美123 | 国产精品一二三区 | 综合在线视频 | 亚洲网站在线 | 亚洲拍拍视频 | 操人网 | 狠狠干少妇 | 免费成人深夜夜行网站视频 | 免费看黄在线看 | 一区二区三区四区精品视频 | 日批在线 | www.精品国产 | 精品伦精品一区二区三区视频密桃 | 国产精品日本 | 国产www | 欧美a级在线免费观看 | 少妇系列在线观看 | 欧美激情999 | 国产精品亚洲成在人线 | 日本久操| 免费人成在线观看 | 黄色免费片 | 青青草欧美| 亚洲操操 | 大又大又粗又硬又爽少妇毛片 | 一区二区三区高清在线 | 国产精品视频观看 | 亚洲国产视频网站 | 国内自拍2020 | 森泽佳奈在线播放 | 国产第8页| 熟女少妇在线视频播放 | 日韩一二三四 | 狠狠入| 亚洲丁香婷婷 | 亚洲午码 | 亚洲精品国产精品国自产网站按摩 | 亚洲成人av影片 | 国产精品高潮呻吟av | 强迫凌虐淫辱の牝奴在线观看 | 亲切的金子餐桌片段的金子 | 在线干 | 亚洲一区美女 | 欧美精品一二区 | 成人欧美一区二区三区黑人孕妇 | 天天操夜夜拍 | 国产激情在线看 | aa一级片 | 国产色综合天天综合网 | 国产三级在线免费观看 | 一区二区三区国产 | 精品爆乳一区二区三区 | 少妇乱淫 | 日本国产欧美 | 91色偷偷 | 国产福利第一页 | 午夜影院免费视频 | 欧美性生交片4 | 亚洲成人免费观看 | 制服丝袜成人动漫 | 黄瓜视频在线免费看 | 3d成人动漫在线观看 | 色婷婷欧美| 欧美日韩国产免费观看 | 精品人妻一区二区三区久久夜夜嗨 | 美丽的姑娘在线观看免费 | 国产毛片在线视频 | 草比视频在线观看 | 成人在线视频免费播放 |