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

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>
            亚洲国产欧美在线| 免费观看成人鲁鲁鲁鲁鲁视频 | 午夜免费久久久久| 最新日韩在线视频| 欧美成人精品h版在线观看| 久久精品91久久久久久再现| 亚洲欧美另类综合偷拍| 亚洲欧美国产视频| 亚洲人成人77777线观看| 亚洲人成免费| 欧美激情一区二区久久久| 欧美激情导航| 欧美日韩亚洲高清| 国产精品区一区二区三区| 国产精品夜夜夜| 午夜在线电影亚洲一区| 欧美中文在线视频| 欧美激情欧美狂野欧美精品| 亚洲人成在线播放| 欧美激情在线播放| 日韩视频免费观看| 欧美亚洲日本一区| 亚洲嫩草精品久久| 久久人人爽人人爽| 欧美女激情福利| 国产欧美一区二区三区国产幕精品| 国产在线精品成人一区二区三区| 狠狠色噜噜狠狠色综合久| 一本色道久久综合狠狠躁的推荐| 亚洲一区二区三区久久| 久久美女艺术照精彩视频福利播放| 欧美www在线| 最新国产乱人伦偷精品免费网站| 1024成人| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲婷婷综合久久一本伊一区| 午夜在线电影亚洲一区| 国产三级欧美三级| 一区二区欧美日韩视频| 久久久午夜视频| 免费成人黄色片| 国产亚洲午夜高清国产拍精品| 亚洲伦理在线观看| 亚洲视频在线观看三级| 韩国免费一区| 亚洲激情欧美| 国产精品视频导航| 欧美不卡在线视频| 国产精品久久久久77777| 亚洲狠狠丁香婷婷综合久久久| 午夜精品亚洲| 日韩视频一区二区在线观看| 欧美自拍丝袜亚洲| 欧美性事在线| 在线性视频日韩欧美| 亚洲免费在线视频| 亚洲国产精品久久| 久久综合影视| 久久久国产精品一区| 国产精品日韩| 欧美国产成人在线| 欧美~级网站不卡| 亚洲欧美中日韩| 美女精品自拍一二三四| 午夜精品久久久久久久久| 久久女同互慰一区二区三区| 亚洲欧美日产图| 欧美精品 日韩| 老司机一区二区| 国产精品久久亚洲7777| 欧美一区精品| 亚洲欧美在线网| 国产亚洲精品久久久| 亚洲精品视频免费| 国产精品久久99| 亚洲高清不卡| 欧美精品日韩三级| 老司机午夜精品视频| 国产精品一区二区三区乱码| 午夜精品久久久久久久99黑人| 欧美成人激情视频| 亚洲视频福利| 亚洲综合视频1区| 一区二区三区日韩精品视频| 久久夜色精品国产噜噜av| 久久久精品日韩| 麻豆精品视频在线| 农村妇女精品| 麻豆国产精品777777在线| 免费看的黄色欧美网站| 欧美亚洲在线观看| 欧美视频在线视频| 久久超碰97人人做人人爱| 欧美三级中文字幕在线观看| 亚洲国产成人久久| 91久久夜色精品国产九色| 亚洲啪啪91| 亚洲精品日日夜夜| 欧美国产日韩精品| 亚洲精品乱码久久久久久久久 | 亚洲欧美日韩视频一区| 欧美日韩一区免费| 一区二区三区日韩在线观看| 国产区精品在线观看| 亚洲男人第一网站| 久久精品国产精品亚洲精品| 国产亚洲在线观看| 久久综合九色99| 欧美亚洲综合另类| 国产欧美精品| 久久精品九九| 亚洲二区免费| 亚洲尤物在线视频观看| 久久精品二区亚洲w码| 亚洲精品久久在线| 欧美人与性动交a欧美精品| 亚洲精品四区| 亚洲欧美日韩一区二区在线| 国产精品一区二区久久久久| 欧美一区二区三区免费大片| 一本色道久久综合亚洲精品小说 | 欧美在线视频一区二区三区| 免费精品99久久国产综合精品| 国产精品一区在线观看| 久久av最新网址| 欧美激情精品久久久久久黑人| 一本久久综合亚洲鲁鲁| 国产精品日日摸夜夜添夜夜av| 午夜亚洲性色福利视频| 欧美二区在线看| 亚洲综合视频1区| 在线观看国产日韩| 欧美一级片一区| 亚洲欧洲一区二区在线播放 | 亚洲欧美成人一区二区三区| 美女爽到呻吟久久久久| 正在播放欧美视频| 国户精品久久久久久久久久久不卡 | 欧美国产一区二区在线观看| 一区二区激情小说| 狠狠色丁香久久综合频道| 欧美激情在线有限公司| 亚久久调教视频| 日韩视频国产视频| 欧美成人亚洲成人日韩成人| 亚洲欧美一区二区视频| 亚洲高清在线观看一区| 国产精品稀缺呦系列在线| 免费观看亚洲视频大全| 亚洲福利精品| 黄色国产精品| 国产精品嫩草久久久久| 欧美大片在线看免费观看| 欧美一级大片在线观看| aⅴ色国产欧美| 亚洲一区二区三区四区视频| 在线观看视频一区| 国产视频久久久久久久| 欧美视频1区| 欧美精品日本| 免费成人av资源网| 久久久久综合网| 亚洲国产二区| 葵司免费一区二区三区四区五区| 亚洲欧美网站| 亚洲视频1区| 亚洲肉体裸体xxxx137| 韩国成人福利片在线播放| 国产精品中文字幕在线观看| 欧美婷婷在线| 欧美视频三区在线播放| 欧美日韩ab| 午夜在线电影亚洲一区| 在线亚洲精品| 久久婷婷国产综合国色天香| 亚洲成人在线视频网站| 国产专区欧美精品| 国产美女高潮久久白浆| 国产精品伦一区| 国产精品海角社区在线观看| 欧美午夜片欧美片在线观看| 欧美日韩三级在线| 欧美手机在线| 国产精品日日摸夜夜添夜夜av| 国产精品久久久久久久久久免费看| 欧美色大人视频| 国产精品人人做人人爽| 国产日产亚洲精品| 韩国一区二区三区在线观看| 黄色资源网久久资源365| 欧美激情一区二区三区全黄| 欧美激情a∨在线视频播放| 欧美激情精品久久久久久大尺度 | 欧美日韩一区三区四区| 国产精品福利久久久| 国产欧美日韩综合| 在线观看日韩av电影| 亚洲精选成人| 亚洲欧美日韩精品一区二区 | 免费短视频成人日韩|