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

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

給定6個(gè)基礎(chǔ)點(diǎn),和1000個(gè)輔助點(diǎn),以及無(wú)向邊若干。
求一棵代價(jià)最小的生成子樹(shù),使得6個(gè)基礎(chǔ)點(diǎn)連通。
http://en.wikipedia.org/wiki/Steiner_tree_problem

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

方法二:
spfa。
dp[i][j]意義同上。一個(gè)點(diǎn)(i,j),對(duì)每個(gè)鄰接點(diǎn)i',枚舉那一頭的狀態(tà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是此題升級(jí)版.

??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) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): acm_icpc
<2010年4月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

"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)

隨筆分類(lèi)(59)

隨筆檔案(43)

cows

搜索

  •  

最新評(píng)論

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日本免费| 亚洲人成人77777线观看| 亚洲天堂av在线免费观看| 亚洲国产精品福利| 午夜在线精品| 小黄鸭视频精品导航| 欧美有码视频| 蜜臀久久99精品久久久久久9| 久久免费国产| 亚洲国产专区校园欧美| 亚洲天堂免费观看| 亚洲一区三区电影在线观看| 欧美在线播放| 欧美国产精品| 国产伦精品一区二区三区在线观看 | 欧美顶级大胆免费视频| 欧美激情1区2区| 国产精品二区二区三区| 伊人久久综合| 一区二区三区日韩精品| 欧美在线看片| 亚洲激情专区| 欧美一区二区三区婷婷月色| 欧美成人精品高清在线播放| 国产精品久久7| 欧美大片免费观看| 亚洲一本视频| 久久亚洲免费| 日韩视频在线一区二区| 欧美一区二区三区在线免费观看| 男女精品网站| 国产精品户外野外| 在线观看视频欧美| 性欧美超级视频| 91久久国产综合久久91精品网站| 亚洲欧美国产一区二区三区| 乱人伦精品视频在线观看| 国产精品亚洲综合| 99香蕉国产精品偷在线观看| 久久久久久久久久码影片| 99天天综合性| 老牛影视一区二区三区| 久久综合九色综合欧美就去吻| 国产精品不卡在线| 91久久线看在观草草青青| 欧美制服第一页| 一区二区三区高清在线| 欧美国产视频一区二区| 狠狠色狠狠色综合| 欧美有码在线观看视频| 亚洲三级电影全部在线观看高清| 久久免费视频网| 好吊视频一区二区三区四区| 欧美在线播放高清精品| 亚洲综合激情| 国产日韩高清一区二区三区在线| 亚洲一区二区在线看| 久久精品五月| 国产精品亚洲精品| 99热精品在线观看| 欧美99在线视频观看| 久久av一区二区三区亚洲| 亚洲看片网站| 欧美日韩一区二区在线播放| 亚洲欧美日本国产专区一区| 9色精品在线| 欧美一区三区三区高中清蜜桃| 香蕉乱码成人久久天堂爱免费| 亚洲性感美女99在线| 久久综合伊人| 亚洲第一毛片| 亚洲电影欧美电影有声小说| 久久久欧美一区二区| 免费看成人av| 午夜精品久久久久久久99樱桃| 国产精品丝袜xxxxxxx| 亚洲精品国产精品国产自| 欧美电影电视剧在线观看| 亚洲国产欧美一区二区三区久久 | 一区二区冒白浆视频| 久久国产视频网站| 欧美福利视频在线观看| 亚洲一区二区三区在线观看视频 | 久久资源av| 国内久久婷婷综合| 中国成人在线视频| 蜜桃精品一区二区三区| 亚洲午夜精品在线| 国产精品久久99| 欧美一区二区三区在线视频| 亚洲精品久久久久中文字幕欢迎你 | 一区二区三区免费网站| 亚洲欧美不卡| 国产一区二区三区四区在线观看| 久久久久久免费| 欧美日韩直播| 欧美在线关看| 日韩午夜在线观看视频| 亚洲欧美三级伦理| 免费成人网www| 欧美一区二区播放| 亚洲精品综合| 99日韩精品| 亚洲午夜精品久久久久久浪潮| 一区国产精品| 亚洲精品一区二区三区av| 蜜乳av另类精品一区二区| 亚洲综合色网站| 国产亚洲二区| 久久精品人人做人人综合| 国内一区二区在线视频观看| 欧美伊人久久久久久久久影院| 欧美在线视频二区| 亚洲一级网站| 国产字幕视频一区二区| 午夜日韩在线观看| 91久久精品国产91性色| 欧美一区国产在线| 美女主播视频一区| 久久躁日日躁aaaaxxxx| 亚洲性视频网站| 欧美在线影院在线视频| 久久国产直播| 亚洲一区免费看| 中文日韩在线视频| 久久久不卡网国产精品一区| 亚洲一区二区三区乱码aⅴ| 久久另类ts人妖一区二区| 羞羞漫画18久久大片| 欧美日韩精品一区二区| 欧美福利视频| 在线精品高清中文字幕| 亚洲欧美自拍偷拍| 亚洲欧美在线aaa| 国产精品白丝av嫩草影院| 日韩视频免费观看高清完整版| 亚洲精品午夜| 欧美高清视频免费观看| 国产日韩欧美不卡在线| 国产区亚洲区欧美区| 欧美一区二区三区视频在线观看| 亚洲国产三级网| 麻豆av一区二区三区久久| 久久一区二区精品| 狠狠入ady亚洲精品| 久久se精品一区精品二区| 久久久99国产精品免费| 国产一区二区三区最好精华液| 性做久久久久久久免费看| 久久久人人人| 亚洲国内欧美| 欧美在线观看视频一区二区三区| 国产精品青草久久久久福利99| 亚洲午夜av在线| 久久精品一区二区| 亚洲国产日韩在线一区模特| 欧美黄免费看| 亚洲高清在线播放| 亚洲一区视频在线| 夜夜嗨av色一区二区不卡| 欧美肥婆在线| 欧美激情网友自拍| 亚洲激情社区| 美女视频黄 久久| 蜜臀a∨国产成人精品| 国产亚洲一级高清| 欧美亚洲自偷自偷| 欧美激情性爽国产精品17p| 一区二区三区国产盗摄| 国产精品av免费在线观看| 欧美一级视频| 免费在线亚洲欧美| 中文在线资源观看网站视频免费不卡| 欧美精品免费观看二区| 亚洲女同在线| 久久成人免费| 亚洲美女网站| 国产一区二区三区电影在线观看| 久久精品欧洲| 一本到12不卡视频在线dvd| 久久久高清一区二区三区| 一区二区三区蜜桃网| 久久精品国产久精国产思思| 美女精品一区| 欧美一区观看| 亚洲每日更新| 在线欧美一区| 国产乱理伦片在线观看夜一区 | 久久精品国产视频| 一区二区三区日韩精品| 噜噜噜91成人网| 香蕉免费一区二区三区在线观看| 亚洲成人在线网站| 国内精品美女av在线播放| 国产精品久久久久久久9999| 免费成人黄色av| 久久精品国产精品亚洲| 午夜精品久久久久久99热软件 | 亚洲国产精品福利| 久久亚洲影院|