青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 43,  comments - 9,  trackbacks - 0
http://acm.hdu.edu.cn/showproblem.php?pid=3311

給定6個基礎點,和1000個輔助點,以及無向邊若干。
求一棵代價最小的生成子樹,使得6個基礎點連通。
http://en.wikipedia.org/wiki/Steiner_tree_problem

方法一:
狀態DP。
一棵樹,實際上可以看成是由兩棵子樹拼接而成,或者一棵樹擴展一條邊篩選。而要完整地表示一棵子樹,需要記錄它的根,和對6個基礎點的覆蓋狀態。
這樣求一棵大樹,可以枚舉接合點,以及兩個子樹的覆蓋狀態。
若dp[i][j],i表示接合點,j表示覆蓋狀態,那么dp[i][j]=min{dp[i][k]+dp[i][j^k]}。
直接擴展一條邊, 可以在保持j不變的情況下, 優先隊列廣搜, 大大降低復雜度.

方法二:
spfa。
dp[i][j]意義同上。一個點(i,j),對每個鄰接點i',枚舉那一頭的狀態j',然后用dp[i][j]+dp[i'][j']+way[i][i']去更新dp[i][j|j']和dp[i'][j|j']。

ps. topcoder srm 470 div1 level3是此題升級版.

??1?#include?<string>
??2?#include?<vector>
??3?#include?<list>
??4?#include?<map>
??5?#include?<queue>
??6?#include?<stack>
??7?#include?<set>
??8?#include?<iostream>
??9?#include?<sstream>
?10?#include?<numeric>
?11?#include?<algorithm>
?12?#include?<cmath>
?13?#include?<cctype>
?14?#include?<cstdlib>
?15?#include?<cstdio>
?16?#include?<cstring>
?17?using?namespace?std;
?18?
?19?#define?CLR(x)?memset((x),0,sizeof(x))
?20?#define?SET(x,y)?memset((x),(y),sizeof(x))
?21?#define?REP(i,x)?for(int?i=0;i<(x);i++)
?22?#define?FOR(i,x,y)?for(int?i=(x);i<(y);i++)
?23?#define?VI?vector<int>?
?24?#define?PB(i,x)?(i).push_back(x)
?25?#define?MP(x,y)?make_pair((x),(y))
?26?
?27?struct?EDGE{
?28?????int?v,e,d;
?29?}edg[20000];
?30?int?ecnt,?gg[1006];
?31?
?32?struct?HEAP{
?33?????int?v,d;
?34?????void?set(int?nv,?int?nd){v=nv;d=nd;}
?35?}hp[1006*(1<<6)*10];
?36?int?sz;
?37?bool?vis[1006];
?38?
?39?int?dp[1006][1<<6];
?40?int?N,?M,?P;
?41?
?42?bool?cmp(const?HEAP?&a,?const?HEAP?&b)
?43?{?return?a.d>b.d;?}
?44?
?45?void?addedge(int?u,?int?v,?int?d)
?46?{
?47?????edg[ecnt].v=v;?edg[ecnt].d=d;?edg[ecnt].e=gg[u];?gg[u]=ecnt++;
?48?????edg[ecnt].v=u;?edg[ecnt].d=d;?edg[ecnt].e=gg[v];?gg[v]=ecnt++;
?49?}
?50?
?51?int?steiner()
?52?{
?53?????int?up?=?1<<(N+1);
?54?????SET(dp,-1);
?55?????REP(i,N+1)?dp[i][1<<i]=0;
?56?????FOR(i,N+1,N+M+1)?dp[i][0]=0;
?57?????REP(i,up){
?58?????????REP(j,N+M+1){
?59?????????????for(int?k=i;?k>0;?k=(k-1)&i){
?60?????????????????if(dp[j][k]!=-1?&&?dp[j][i^k]!=-1)
?61?????????????????????if(dp[j][i]==-1?||?dp[j][i]>dp[j][k]+dp[j][i^k])
?62?????????????????????????dp[j][i]=dp[j][k]+dp[j][i^k];
?63?????????????}
?64?????????}
?65?????????sz=0;
?66?????????CLR(vis);
?67?????????REP(j,N+M+1)?if(dp[j][i]!=-1){
?68?????????????hp[sz++].set(j,dp[j][i]);
?69?????????????push_heap(hp,?hp+sz,?cmp);
?70?????????}
?71?????????while(sz){
?72?????????????int?now=hp[0].v;
?73?????????????pop_heap(hp,?hp+sz--,cmp);
?74?????????????if(vis[now])continue;
?75?????????????vis[now]=true;
?76?????????????for(int?e=gg[now];?~e;?e=edg[e].e){
?77?????????????????int?to=edg[e].v,?td=dp[now][i]+edg[e].d;
?78?????????????????if(dp[to][i]==-1?||?dp[to][i]>td){
?79?????????????????????dp[to][i]=td;
?80?????????????????????hp[sz++].set(to,td);
?81?????????????????????push_heap(hp,?hp+sz,?cmp);
?82?????????????????}
?83?????????????}
?84?????????}
?85?????}
?86?????return?dp[0][up-1];
?87?}
?88?
?89?int?main()
?90?{
?91?????while(~scanf("%d?%d?%d",?&N,?&M,?&P)){
?92?????????int?u,?v,?d;
?93?????????SET(gg,-1);?ecnt=0;
?94?????????REP(i,N+M){
?95?????????????scanf("%d",?&d);
?96?????????????addedge(0,i+1,?d);
?97?????????}
?98?????????REP(i,P){
?99?????????????scanf("%d?%d?%d",?&u,?&v,?&d);
100?????????????addedge(u,v,d);
101?????????}
102?????????int?ret=steiner();
103?????????printf("%d\n",?ret);
104?????}
105?????return?0;
106?}

posted on 2010-05-27 16:21 wolf5x 閱讀(606) 評論(0)  編輯 收藏 引用 所屬分類: acm_icpc
<2009年12月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

"Do not spend all your time on training or studying - this way you will probably become very exhausted and unwilling to compete more. Whatever you do - have fun. Once you find programming is no fun anymore – drop it. Play soccer, find a girlfriend, study something not related to programming, just live a life - programming contests are only programming contests, and nothing more. Don't let them become your life - for your life is much more interesting and colorful." -- Petr

留言簿(3)

隨筆分類(59)

隨筆檔案(43)

cows

搜索

  •  

最新評論

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜精品久久久久久久男人的天堂| 欧美专区在线观看| 一区二区三区欧美在线| 久久综合网色—综合色88| 国产伦精品一区二区三区免费| 亚洲精品乱码久久久久久日本蜜臀| 久久久久久久网站| 欧美一级成年大片在线观看| 国产免费一区二区三区香蕉精| 亚洲欧美日韩综合aⅴ视频| 一本色道久久综合亚洲精品高清 | 亚洲人成网站777色婷婷| 久久久美女艺术照精彩视频福利播放| 亚洲深夜福利视频| 欧美日韩中文在线观看| 9人人澡人人爽人人精品| 亚洲电影欧美电影有声小说| 久久久精品999| 在线成人免费观看| 欧美成ee人免费视频| 国产亚洲欧美另类中文| 亚洲丰满少妇videoshd| 免费国产自线拍一欧美视频| 久久综合国产精品| 亚洲精品国产视频| 日韩午夜剧场| 国产乱码精品一区二区三| 久久久久国产精品一区二区| 久久九九久久九九| 亚洲狼人综合| 亚洲视频一区在线观看| 国产真实乱偷精品视频免| 欧美成人午夜| 欧美午夜视频网站| 久久精品免费| 欧美99久久| 午夜精品免费在线| 久久久久青草大香线综合精品| 亚洲国产日韩一区| 在线亚洲精品| 亚洲大片免费看| 亚洲美女在线国产| 国语自产精品视频在线看抢先版结局 | 亚洲国产精品一区二区三区| 国产精品久久久久秋霞鲁丝| 久久在线视频在线| 欧美日韩国产欧美日美国产精品| 久久成人免费日本黄色| 欧美国产三区| 欧美专区亚洲专区| 欧美成人精品在线播放| 午夜精品一区二区三区在线播放| 久久久噜噜噜久噜久久| 亚洲综合国产精品| 麻豆91精品| 欧美在线一级视频| 欧美日韩四区| 亚洲第一精品影视| 国产一区二区三区久久久| 亚洲精品中文字幕有码专区| 激情久久综合| 亚洲在线电影| 亚洲图片欧洲图片av| 麻豆成人综合网| 欧美在线欧美在线| 欧美三级视频在线| 亚洲第一页自拍| 韩国v欧美v日本v亚洲v| 亚洲一区免费视频| 在线视频欧美日韩精品| 欧美成人免费在线观看| 久久综合中文| 国产色产综合产在线视频| 一本色道久久精品| 99国产精品| 欧美激情精品久久久久久免费印度 | 午夜精品久久久久久久99樱桃| 亚洲人成在线观看网站高清| 香蕉视频成人在线观看| 亚洲网站在线看| 免费在线亚洲| 欧美国产视频在线观看| 激情综合自拍| 久久精品二区亚洲w码| 久久精品99国产精品日本| 国产精品国产三级国产普通话蜜臀 | 国产精品久久中文| 一区二区高清视频在线观看| 亚洲国产影院| 欧美成人午夜剧场免费观看| 欧美成人国产va精品日本一级| 国产一区二区三区四区在线观看 | 久久亚洲不卡| 国模大胆一区二区三区| 亚洲女人小视频在线观看| 亚洲免费在线观看视频| 欧美视频导航| 亚洲天堂网在线观看| 亚洲综合色噜噜狠狠| 国产精品v日韩精品| 一区二区三区四区在线| 亚洲综合视频网| 国产精品视频精品| 亚洲一区二区在线视频| 欧美日韩成人一区二区| 亚洲精选久久| 宅男噜噜噜66一区二区| 国产精品福利在线观看| 亚洲午夜激情| 欧美中文字幕视频在线观看| 国产欧美日韩视频一区二区| 欧美中文在线免费| 欧美风情在线观看| 日韩一区二区电影网| 亚洲一区久久| 久久偷看各类wc女厕嘘嘘偷窃| 在线电影欧美日韩一区二区私密| 久久亚裔精品欧美| 亚洲精品久久久久久久久久久久久 | 一本色道久久综合亚洲精品小说| 亚洲一区欧美激情| 国产欧美丝祙| 久久免费精品视频| 99热精品在线| 欧美诱惑福利视频| 亚洲成人资源网| 欧美日韩国产一级| 亚洲欧洲在线看| 国产精品激情偷乱一区二区∴| 亚洲性视频网址| 免费观看日韩av| 亚洲图片欧美午夜| 韩国三级在线一区| 久久亚洲不卡| 欧美专区日韩专区| 亚洲人成网站色ww在线| 国产中文一区二区| 欧美xxx在线观看| 亚洲视频一二三| 久久婷婷综合激情| 一区二区三区久久| 狠狠色综合色区| 亚洲欧美日韩精品综合在线观看| 亚洲人成网在线播放| 欧美破处大片在线视频| 欧美暴力喷水在线| 亚洲激情影视| 午夜精品福利视频| 亚洲国产你懂的| 国产精品色婷婷| 欧美另类视频| 久久久久久久久久久久久久一区| 亚洲人成绝费网站色www| 久久9热精品视频| 9国产精品视频| 在线成人h网| 国产精自产拍久久久久久| 欧美高清在线一区| 欧美综合77777色婷婷| 在线亚洲欧美专区二区| 亚洲大片免费看| 久久午夜电影| 久久高清一区| 欧美亚洲三级| 亚洲欧美另类久久久精品2019| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲久久成人| 亚洲电影第三页| 国模吧视频一区| 国产一区二区高清视频| 国产精品九九久久久久久久| 亚洲电影免费观看高清完整版在线观看| 欧美在线视频不卡| 精品不卡一区| 国内精品久久久久久 | 国产精品影音先锋| 国产精品久久久久9999| 欧美日韩成人综合天天影院| 欧美/亚洲一区| 麻豆国产va免费精品高清在线| 久久av免费一区| 久久精品视频播放| 久久国产乱子精品免费女 | 猫咪成人在线观看| 久久一区二区三区四区五区| 久久国产精品久久久| 久久精品国产综合| 久久人人看视频| 开心色5月久久精品| 久久久久久9999| 久久综合网hezyo| 欧美xxx成人| 欧美欧美天天天天操| 欧美手机在线视频| 国产精品亚洲综合天堂夜夜| 国产三区精品| 亚洲国产精品va在线看黑人动漫| 91久久精品一区二区三区| 亚洲精品一区二区三区在线观看 | 欧美中在线观看|