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

POJ 3164 Command Network 最小樹形圖

Description

After a long lasting war on words, a war on arms finally breaks out between littleken’s and KnuthOcean’s kingdoms. A sudden and violent assault by KnuthOcean’s force has rendered a total failure of littleken’s command network. A provisional network must be built immediately. littleken orders snoopy to take charge of the project.

With the situation studied to every detail, snoopy believes that the most urgent point is to enable littenken’s commands to reach every disconnected node in the destroyed network and decides on a plan to build a unidirectional communication network. The nodes are distributed on a plane. If littleken’s commands are to be able to be delivered directly from a node A to another node B, a wire will have to be built along the straight line segment connecting the two nodes. Since it’s in wartime, not between all pairs of nodes can wires be built. snoopy wants the plan to require the shortest total length of wires so that the construction can be done very soon.

Input

The input contains several test cases. Each test case starts with a line containing two integer N (N ≤ 100), the number of nodes in the destroyed network, and M (M ≤ 104), the number of pairs of nodes between which a wire can be built. The next N lines each contain an ordered pair xi and yi, giving the Cartesian coordinates of the nodes. Then follow M lines each containing two integers i and j between 1 and N (inclusive) meaning a wire can be built between node i and node j for unidirectional command delivery from the former to the latter. littleken’s headquarter is always located at node 1. Process to end of file.

Output

For each test case, output exactly one line containing the shortest total length of wires to two digits past the decimal point. In the cases that such a network does not exist, just output ‘poor snoopy’.

Sample Input

4 6
0 6
4 6
0 0
7 20
1 2
1 3
2 3
3 4
3 1
3 2
4 3
0 0
1 0
0 1
1 2
1 3
4 1
2 3

Sample Output

31.19
poor snoopy

Source


 

最小樹形圖算法(Zhu-Liu Algorithm)

1.       設最小樹形圖的總權值為cost,置cost0

2.       除源點外,為其他所有節點Vi找一條權值最小的入邊,加入集合TT就是最短邊的集合。加邊的方法:遍歷所有點到Vi的邊中權值最小的加入集合T,記pre[Vi]為該邊的起點,mincost[Vi]為該邊的權值。

3.       檢查集合T中的邊是否存在有向環,有則轉到步驟4,無則轉到步驟5。這里需要利用pre數組,枚舉檢查過的點作為搜索的起點,類似dfs的操作判斷有向環。

4.       將有向環縮成一個點。設環中有點{Vk1,Vk2,…,Vki}i個點,用Vk代替縮成的點。在壓縮后的圖中,更新所有不在環中的點VVk的距離:

map[V][Vk] = min {map[V][Vkj]-mincost[Vki]} 1<=j<=i

map[Vk][V] = min {map[Vkj][V]}           1<=j<=I

5.       cost加上T中有向邊的權值總和就是最小樹形圖的權值總和。

#include <iostream>
#include 
<cmath>

#define min(a,b) (a<b ? a:b)

const int MAXN = 110;
const int INF = 0x7FFFFFFF;
int n,m,pre[MAXN];
double x[MAXN],y[MAXN];
bool circle[MAXN],visit[MAXN];
double ans,map[MAXN][MAXN];

inline 
double distance(double x1,double y1,double x2,double y2){
    
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

void dfs(int u){
    visit[u]
=true;
    
for(int i=2;i<=n;i++)
        
if(!visit[i] && map[u][i]!=INF)
            dfs(i);
}

bool connected(){
    memset(visit,
false,sizeof(visit));
    
int i,cnt=0;
    
for(i=1;i<=n;i++)
        
if(!visit[i])
            dfs(i),cnt
++;
    
return cnt==1 ? true : false;
}

void min_arborescence(){
    
int i,j,k;
    memset(circle,
false,sizeof(circle));
    
while(true){
        
for(i=2;i<=n;i++){
            
if(circle[i]) continue;
            pre[i]
=i;
            map[i][i]
=INF;
            
for(j=1;j<=n;j++){
                
if(circle[j]) continue;
                
if(map[j][i]<map[pre[i]][i])
                    pre[i]
=j;
            }

        }

        
for(i=2;i<=n;i++){
            
if(circle[i]) continue;
            j
=i;
            memset(visit,
false,sizeof(visit));
            
while(!visit[j] && j!=1){
                visit[j]
=true;
                j
=pre[j];
            }

            
if(j==1continue;
            i
=j;
            ans
+=map[pre[i]][i];
            
for(j=pre[i];j!=i;j=pre[j]){
                ans
+=map[pre[j]][j];
                circle[j]
=true;
            }

            
for(j=1;j<=n;j++){
                
if(circle[j]) continue;
                
if(map[j][i]!=INF)
                    map[j][i]
-=map[pre[i]][i];
            }

            
for(j=pre[i];j!=i;j=pre[j])
                
for(k=1;k<=n;k++){
                    
if(circle[k]) continue;
                    map[i][k]
=min(map[i][k],map[j][k]);
                    
if(map[k][j]!=INF)
                        map[k][i]
=min(map[k][i],map[k][j]-map[pre[j]][j]);
                }

            
break;
        }

        
if(i>n){
            
for(j=2;j<=n;j++){
                
if(circle[j]) continue;
                ans
+=map[pre[j]][j];
            }

            
break;
        }

    }

}

int main(){
    
int i,j,u,v;
    
while(scanf("%d %d",&n,&m)!=EOF){
        
for(ans=i=0;i<=n;i++for(j=0;j<=n;j++) map[i][j]=INF;
        
for(i=1;i<=n;i++) scanf("%lf %lf",&x[i],&y[i]);
        
while(m--){
            scanf(
"%d %d",&u,&v);
            map[u][v]
=distance(x[u],y[u],x[v],y[v]);
        }

        
if(!connected()) puts("poor snoopy");
        
else{
            min_arborescence();
            printf(
"%.2lf\n",ans);
        }

    }

    
return 0;
}

posted on 2009-05-26 16:03 極限定律 閱讀(693) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC

<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

導航

統計

常用鏈接

留言簿(10)

隨筆分類

隨筆檔案

友情鏈接

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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白丝在线| 一区二区在线看| 欧美国产日本高清在线| 欧美精品一区在线观看| 亚洲欧美日韩中文在线制服| 亚洲欧美成人一区二区在线电影| 国产精品丝袜白浆摸在线| 欧美精品在线观看91| 亚洲无线视频| 久久久97精品| 日韩系列在线| 欧美亚洲一区二区在线观看| 一区在线视频| 亚洲精品国产系列| 国产伦精品一区二区三区高清版 | 亚洲国产日韩欧美在线99| 91久久久久久久久| 国产日韩欧美不卡在线| 欧美成人有码| 国产九九精品视频| 亚洲高清一二三区| 国产日产亚洲精品系列| 亚洲激情视频在线观看| 国产视频一区在线观看一区免费| 欧美激情一区二区三区在线视频| 国产精品美女一区二区| 欧美黑人多人双交| 国产一区二区剧情av在线| 亚洲激情综合| 精品电影在线观看| 亚洲一区二区在线播放| 亚洲精品国久久99热| 欧美在线视频观看免费网站| 一本色道久久99精品综合| 久久嫩草精品久久久精品| 亚洲欧美在线高清| 欧美区一区二| 欧美成人自拍视频| 国产字幕视频一区二区| 亚洲小说春色综合另类电影| 亚洲人线精品午夜| 久久―日本道色综合久久| 欧美一区二区大片| 欧美午夜精品久久久久久浪潮| 亚洲大胆女人| 中文在线资源观看网站视频免费不卡| 一区二区三区自拍| 久久成人免费网| 羞羞漫画18久久大片| 欧美日韩aaaaa| 亚洲国产高清自拍| 亚洲五月六月| 一本色道久久88综合亚洲精品ⅰ| 国产午夜亚洲精品理论片色戒| 亚洲国产综合在线| 影音国产精品| 欧美一区三区三区高中清蜜桃| 亚洲一区二区在线免费观看| 欧美精品午夜| 亚洲精品在线一区二区| 91久久久久久| 欧美成人自拍视频| 亚洲国内精品在线| 夜夜嗨一区二区| 欧美日韩国产成人在线| 999亚洲国产精| 亚洲无毛电影| 国产精品女主播一区二区三区| 一区二区三区精品| 亚洲欧美三级伦理| 国产欧美一区二区精品秋霞影院 | 国产一区二区在线观看免费播放| 亚洲深夜福利| 欧美一区二区三区四区高清| 国产日韩一区二区三区| 久久国产精品99久久久久久老狼 | 亚洲一区图片| 国产精品综合视频| 欧美一区二区三区啪啪| 免播放器亚洲一区| 亚洲美女91| 国产精品夫妻自拍| 欧美在线www| 欧美激情片在线观看| 在线视频精品一| 国产深夜精品| 模特精品在线| 亚洲一区二区三区在线| 免费成人美女女| 99国产精品久久久久久久| 欧美午夜片欧美片在线观看| 午夜视频一区在线观看| 亚洲成人在线视频播放 | 亚洲精品少妇网址| 国产精品久久久久久久久久久久久| 亚洲欧美日韩在线播放| 免费成人在线视频网站| 中国成人黄色视屏| 韩国成人精品a∨在线观看| 欧美黄色一级视频| 午夜日韩视频| 亚洲精品影院在线观看| 欧美综合二区| 一本一本a久久| 伊人久久综合| 国产精品美腿一区在线看| 久久青青草原一区二区| 亚洲视频在线一区观看| 欧美77777| 久久av老司机精品网站导航| 99国产精品国产精品久久| 黑人极品videos精品欧美裸| 欧美日韩亚洲成人| 麻豆精品精品国产自在97香蕉| 亚洲免费人成在线视频观看| 亚洲欧洲视频在线| 免费在线亚洲| 久久精品夜色噜噜亚洲aⅴ| 亚洲亚洲精品三区日韩精品在线视频| 在线精品亚洲| 国产中文一区二区| 国产精品一区二区三区四区五区 | 欧美日本中文字幕| 免费亚洲电影| 久久精品成人欧美大片古装| 亚洲一区二区三区在线观看视频| 亚洲经典在线| 亚洲国产高清高潮精品美女| 狂野欧美激情性xxxx| 久久精品免费看| 香蕉乱码成人久久天堂爱免费 | 午夜欧美精品| 亚洲在线观看视频网站| 一区二区三区四区五区视频| 亚洲青涩在线| 亚洲人精品午夜| 亚洲国产日韩欧美| 欧美激情一区二区三级高清视频| 麻豆免费精品视频| 久久综合色婷婷| 麻豆91精品| 老色鬼精品视频在线观看播放| 久久久午夜视频| 久久婷婷久久一区二区三区| 久久久久高清| 久久资源在线| 欧美激情视频在线免费观看 欧美视频免费一| 久久美女性网| 久久综合影音| 亚洲电影观看| 日韩午夜一区| 亚洲男人的天堂在线aⅴ视频| 亚洲欧美日韩成人高清在线一区| 午夜国产精品视频| 久久久国产精品一区二区三区| 久久精品99国产精品| 狼人天天伊人久久| 欧美美女喷水视频| 国产精品久久久久久久一区探花| 国产精品日韩一区| 极品尤物av久久免费看| 亚洲青涩在线| 亚洲欧美美女| 久久亚洲综合色| 亚洲国产高清在线| 中国成人在线视频| 久久精品综合| 欧美日韩国产小视频| 国产欧美一区二区三区沐欲| 精品成人久久| av不卡在线| 久久欧美肥婆一二区| 亚洲经典三级| 欧美在线播放一区| 欧美日本亚洲视频| 国产视频丨精品|在线观看| 亚洲激情啪啪| 久久国产99| 亚洲免费激情| 玖玖综合伊人| 国产精品视频网址| 亚洲精品日韩一| 久久久久久国产精品一区| 最新国产乱人伦偷精品免费网站| 亚洲一区二区视频在线观看| 久久综合电影| 国产欧美日韩视频| 中国女人久久久| 另类天堂av| 亚洲欧美日本视频在线观看| 欧美激情在线| 亚洲高清自拍| 久久久www成人免费毛片麻豆| 亚洲美女在线一区| 免费在线亚洲欧美| 精品成人久久| 久久精品最新地址|