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

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年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

"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>
            久久精品国产第一区二区三区最新章节| 久久精品女人天堂| 欧美性事免费在线观看| 欧美国产日韩一二三区| 在线观看日韩精品| 免费亚洲网站| 亚洲人成精品久久久久| 亚洲国产高潮在线观看| 免费av成人在线| 亚洲三级色网| 亚洲一级特黄| 一区二区三区在线不卡| 麻豆久久精品| 亚洲午夜精品一区二区| 久久久九九九九| 亚洲免费精彩视频| 国产裸体写真av一区二区| 久久美女性网| 在线亚洲观看| 牛牛国产精品| 午夜亚洲一区| 亚洲日本久久| 国产欧美日韩一区二区三区在线观看 | 国产人妖伪娘一区91| 久久久精品国产免大香伊 | 国产亚洲精品bt天堂精选| 蜜桃av一区二区| 99精品视频一区二区三区| 久久国产精品久久w女人spa| 亚洲欧洲日本国产| 国产一级揄自揄精品视频| 欧美mv日韩mv亚洲| 久久精品国产免费| 亚洲综合久久久久| 日韩视频一区二区三区在线播放| 久久欧美中文字幕| 久久久噜久噜久久综合| 在线精品一区二区| 国产乱肥老妇国产一区二 | 欧美精品久久久久久久久久| 午夜日韩视频| 一本色道久久加勒比精品| 美女诱惑一区| 久久高清一区| 欧美一区二区三区免费看| 亚洲欧洲日产国码二区| 国产在线不卡视频| 国产欧美日韩一区二区三区在线| 欧美日韩情趣电影| 欧美另类变人与禽xxxxx| 久久影院午夜论| 久久亚洲综合色一区二区三区| 亚洲欧美日韩国产成人| 一区二区欧美精品| 一道本一区二区| 亚洲精品中文字幕女同| 亚洲精品黄色| 亚洲国产日韩一区| 亚洲精品日产精品乱码不卡| 欧美福利视频| 欧美粗暴jizz性欧美20| 免费看的黄色欧美网站| 免费欧美电影| 亚洲激情在线激情| 亚洲精品在线观| 亚洲桃色在线一区| 亚洲一区三区视频在线观看| 亚洲无毛电影| 欧美呦呦网站| 久久久久久久久岛国免费| 久久蜜桃精品| 欧美日韩国产三区| 国产精品免费观看视频| 国产亚洲精品久久久久婷婷瑜伽| 国内精品免费午夜毛片| 亚洲福利小视频| 一区二区三区高清不卡| 亚洲欧美日韩系列| 久久夜色精品一区| 亚洲欧洲视频在线| 亚洲欧美日韩中文视频| 久久久久久亚洲精品中文字幕| 欧美成人官网二区| 国产精品久久久久婷婷| 黄色成人av在线| 一区二区三区视频免费在线观看| 午夜精品亚洲| 欧美黄污视频| 亚洲欧美久久久久一区二区三区| 亚洲制服av| 午夜精品久久久久久久99樱桃| 亚洲第一精品久久忘忧草社区| 亚洲第一久久影院| 亚洲午夜精品久久| 美女成人午夜| 日韩视频在线一区二区三区| 午夜精品999| 欧美v日韩v国产v| 国产精品日韩专区| 在线日韩电影| 午夜精品网站| 亚洲国产精品激情在线观看| 一本色道久久综合亚洲精品小说| 午夜亚洲福利| 欧美日韩视频免费播放| 一区二区三区在线视频免费观看 | 国产亚洲一二三区| 亚洲三级电影全部在线观看高清| 亚欧成人在线| 日韩视频精品| 你懂的视频一区二区| 国产日韩亚洲欧美精品| 一卡二卡3卡四卡高清精品视频| 欧美中文在线免费| 一区二区三区高清不卡| 欧美国产日韩一二三区| 在线成人h网| 久久久精品999| 在线综合亚洲欧美在线视频| 久久精品亚洲一区二区三区浴池| 欧美日韩国语| 夜夜嗨av色一区二区不卡| 久久综合一区二区三区| 亚洲一区二区视频在线| 欧美日韩亚洲网| 一本色道久久88综合日韩精品| 久久亚洲视频| 欧美一级视频精品观看| 国产精品网站视频| 亚洲欧美日韩天堂| 亚洲女女女同性video| 欧美日韩综合不卡| 亚洲天堂成人在线视频| 99视频精品| 国产精品成人观看视频免费| 一本色道久久加勒比88综合 | 日韩一级在线观看| 欧美精品一卡| 一本高清dvd不卡在线观看| 亚洲国产mv| 欧美理论在线| 亚洲一区影院| 亚洲伊人观看| 国产一区二区你懂的| 久久九九免费视频| 久久久一二三| 欧美日韩视频一区二区三区| 久久九九免费视频| 国产一区二区三区在线观看免费视频| 亚洲欧美日韩综合一区| 亚洲午夜91| 国内精品伊人久久久久av一坑| 久久欧美中文字幕| 美女日韩欧美| 宅男噜噜噜66一区二区| 亚洲美女淫视频| 国产日韩欧美制服另类| 久久综合五月| 欧美久久99| 欧美影院久久久| 久久在线视频| 亚洲香蕉在线观看| 欧美亚洲视频| 亚洲激情午夜| 亚洲小说春色综合另类电影| 国产日韩精品在线观看| 猛男gaygay欧美视频| 欧美激情aⅴ一区二区三区| 亚洲私拍自拍| 午夜精品一区二区三区在线视| 在线观看日韩www视频免费| 亚洲精品在线一区二区| 韩日成人av| 亚洲久久在线| 一区精品久久| 亚洲先锋成人| 亚洲激情在线| 午夜国产精品影院在线观看| 亚洲激情综合| 午夜一区不卡| 夜色激情一区二区| 久久综合九色欧美综合狠狠| 亚洲综合色自拍一区| 免费不卡在线观看| 久久九九国产| 国产精品福利av| 91久久久久| 亚洲丰满在线| 欧美亚洲一区二区在线观看| 夜夜躁日日躁狠狠久久88av| 欧美伊人影院| 亚洲欧美资源在线| 欧美极品影院| 免费中文日韩| 国语自产精品视频在线看一大j8 | 一区二区三区视频观看| 老司机一区二区| 久久亚洲欧洲| 国模私拍一区二区三区| 99国内精品久久|