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

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年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

導航

統計

常用鏈接

留言簿(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老司机精品网站导航| 黑人一区二区三区四区五区| 欧美成人精品三级在线观看| 免费亚洲网站| 一区二区三区三区在线| 亚洲一区影院| 激情欧美丁香| 亚洲人成欧美中文字幕| 欧美日韩一区二区三区四区五区| 亚洲欧美日本国产专区一区| 西瓜成人精品人成网站| 亚洲国产精品va在看黑人| 最新高清无码专区| 国产精品美女久久久浪潮软件| 久久久久久久综合狠狠综合| 美女露胸一区二区三区| 亚洲性感美女99在线| 欧美一区综合| 夜夜嗨av一区二区三区四区| 亚洲自拍偷拍一区| 亚洲国产美女| 夜夜嗨av一区二区三区免费区| 国产女人18毛片水18精品| 免费成人黄色片| 国产精品国产三级国产普通话三级 | 一本久久精品一区二区| 国产欧美日韩免费| 亚洲黄色在线视频| 国产一区清纯| 亚洲理伦在线| 在线观看日产精品| 亚洲欧美影音先锋| 日韩视频一区| 乱中年女人伦av一区二区| 亚洲女女做受ⅹxx高潮| 欧美第一黄色网| 另类图片综合电影| 国产欧美一区二区精品仙草咪| 亚洲国产一成人久久精品| 国产日韩在线一区二区三区| 99成人在线| 99re热这里只有精品免费视频| 久久精品国产999大香线蕉| 亚洲欧美在线免费| 欧美日韩一区精品| 亚洲国产一成人久久精品| 在线观看亚洲专区| 午夜免费日韩视频| 午夜精品久久久久久久99热浪潮| 欧美金8天国| 欧美激情视频一区二区三区在线播放| 国产日产欧美一区| 亚洲一区二区在线视频| 亚洲一区免费| 国产精品久久77777| 日韩视频在线观看一区二区| 99这里只有久久精品视频| 欧美电影美腿模特1979在线看| 欧美v国产在线一区二区三区| 狠狠色丁香婷综合久久| 欧美亚洲免费在线| 久久激情一区| 激情久久一区| 久久美女性网| 欧美激情网友自拍| 亚洲人成在线观看网站高清| 欧美大片免费久久精品三p | 美女视频一区免费观看| 国产综合网站| 久久精品国亚洲| 每日更新成人在线视频| 亚洲国产精品热久久| 欧美成人高清| 一本色道久久88综合亚洲精品ⅰ| 亚洲自拍偷拍视频| 国产亚洲女人久久久久毛片| 久久久精品一品道一区| 欧美激情欧美激情在线五月| 亚洲卡通欧美制服中文| 欧美日韩高清在线观看| 亚洲午夜精品在线| 久久综合中文| 最新国产成人av网站网址麻豆| 欧美久久综合| 午夜电影亚洲| 欧美成人精品在线| 中文欧美在线视频| 国产伦精品一区二区三区免费迷 | 欧美三级在线播放| 亚洲在线观看免费| 久久一区二区三区av| 亚洲日本电影| 国产精品免费一区二区三区观看 | 欧美国产一区二区| 一本一本a久久| 国产日韩一区二区三区在线播放 | 欧美在线视频日韩| 亚洲国产精品尤物yw在线观看| 亚洲欧美国产另类| 亚洲国产经典视频| 国产精品一区二区三区久久| 久久亚洲不卡| 亚洲综合精品| 亚洲高清中文字幕| 欧美亚洲日本国产| 日韩网站在线| 精品动漫av| 国产精品一区二区a| 欧美粗暴jizz性欧美20| 午夜日本精品| 亚洲视频一区在线| 亚洲国产成人精品久久久国产成人一区 | 国产日韩一区| 欧美日韩亚洲综合一区| 乱人伦精品视频在线观看| 亚洲自拍偷拍福利| 亚洲毛片一区| 欧美激情按摩在线| 老牛嫩草一区二区三区日本| 亚洲免费视频观看| 99re6热在线精品视频播放速度| 韩国av一区二区三区| 国产精品v欧美精品v日韩精品| 欧美va亚洲va国产综合| 久久精品国产77777蜜臀| 亚洲免费网站| 亚洲视频1区| 中文日韩在线| 亚洲精品午夜| 亚洲区第一页| 欧美大片在线看免费观看| 久久久久欧美精品| 欧美在线免费播放| 亚洲欧美大片| 亚洲欧美文学| 亚洲一区日韩| 亚洲欧美日韩成人| 亚洲欧美日韩国产综合精品二区| 亚洲视频一二| 一区二区三区视频免费在线观看| 亚洲理论在线| 在线视频你懂得一区| 9久re热视频在线精品| 夜夜爽www精品| 一区二区三区高清在线 | 国产综合网站| 精品69视频一区二区三区| 精品99一区二区| **欧美日韩vr在线| 91久久精品一区二区别| 亚洲每日更新| 亚洲午夜视频| 性欧美大战久久久久久久久| 久久国产视频网| 久久久噜久噜久久综合| 欧美大秀在线观看| 亚洲精品一区二区三区不| 一本色道久久综合亚洲精品按摩| 一区二区三区偷拍| 欧美一级成年大片在线观看| 久久噜噜噜精品国产亚洲综合| 欧美成人免费在线视频| 欧美日韩亚洲免费| 国产日本欧美一区二区三区| 亚洲福利视频网| 亚洲视频在线二区| 欧美在线高清视频| 欧美福利精品| 中国女人久久久| 久久久亚洲国产天美传媒修理工| 欧美精品乱码久久久久久按摩| 国产精品女人毛片| 一色屋精品视频在线看| 一区二区三区日韩在线观看| 欧美在线观看网站| 欧美夫妇交换俱乐部在线观看| 在线一区欧美| 蜜桃久久精品一区二区| 国产精品久久久久久亚洲毛片 | 欧美人成在线视频| 国产日产精品一区二区三区四区的观看方式| 国产一区二区三区无遮挡| 亚洲精品中文字幕在线| 久久精品国产96久久久香蕉| 亚洲黄色av| 久久本道综合色狠狠五月| 欧美色播在线播放| 亚洲国产精品一区二区三区| 欧美影院一区| 日韩视频在线你懂得| 久久综合伊人77777蜜臀| 国产精品亚洲综合一区在线观看| 亚洲精品欧洲| 欧美1区免费| 久久精品五月婷婷| 国产老女人精品毛片久久| 99精品欧美一区二区三区|