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

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>
            一个人看的www久久| 亚洲自拍偷拍一区| 亚洲欧美制服中文字幕| 亚洲色图综合久久| 亚洲视频综合| 亚洲男女自偷自拍图片另类| 亚洲欧美伊人| 久久亚洲私人国产精品va| 免费一级欧美片在线播放| 亚洲第一黄网| 91久久精品国产91久久| 亚洲第一搞黄网站| 91久久久亚洲精品| 亚洲视频中文| 久久久天天操| 亚洲激情影视| 性做久久久久久久久| 老鸭窝亚洲一区二区三区| 欧美精品一二三| 国产欧美一区二区在线观看| 亚洲国产精品va在线看黑人动漫 | 国产婷婷精品| 在线成人www免费观看视频| 亚洲精品视频在线| 性色av一区二区三区在线观看 | 欧美黄色aaaa| 亚洲伊人网站| 欧美激情日韩| 激情久久影院| 亚洲欧美日韩一区在线| 欧美福利视频在线观看| 亚洲欧美日韩一区在线观看| 欧美高清在线精品一区| 国产一区二区三区四区hd| 中日韩男男gay无套| 欧美~级网站不卡| 午夜精品久久久久久久久久久久久| 男人的天堂成人在线| 国产一区二区三区久久久久久久久| 亚洲一区精品视频| 欧美日本韩国一区| 亚洲国产日本| 美日韩精品免费| 欧美一区网站| 国产精品日韩欧美一区| 亚洲视频在线观看视频| 亚洲欧洲在线免费| 老司机精品久久| 国内精品久久久久久久97牛牛| 欧美在线视频免费| 欧美国产一区视频在线观看| 亚洲一区二区综合| 国产精品九九久久久久久久| 亚洲日本成人网| 欧美高清在线| 久久久999精品| 国产一区二区在线观看免费播放 | 久久视频一区| 欧美亚洲视频一区二区| 国产欧美日韩亚州综合| 欧美一区二区三区四区夜夜大片| 一本色道久久综合亚洲二区三区| 欧美精品激情在线观看| 日韩一区二区精品| 亚洲精品在线三区| 欧美三区在线视频| 午夜精品视频在线| 性色av香蕉一区二区| 今天的高清视频免费播放成人 | 久久精品99无色码中文字幕| 91久久黄色| 欧美日韩在线观看一区二区| 一区二区三区 在线观看视| 亚洲精品无人区| 欧美亚洲动漫精品| 久久成人免费日本黄色| 久久精品国产亚洲aⅴ| 精品999网站| 亚洲日本成人女熟在线观看| 欧美日韩另类丝袜其他| 销魂美女一区二区三区视频在线| 先锋影音一区二区三区| 亚洲第一网站| 99综合电影在线视频| 国产精品视频第一区| 久久婷婷久久| 欧美日韩国产精品专区| 久久本道综合色狠狠五月| 久久视频精品在线| 在线一区二区三区四区| 亚洲欧美日韩综合| 精品成人一区二区三区| 亚洲日本在线视频观看| 国产免费成人| 亚洲高清在线精品| 国产模特精品视频久久久久| 欧美福利一区二区| 国产精品毛片a∨一区二区三区|国| 久久精品视频免费播放| 欧美福利视频在线| 久久久久www| 欧美日韩亚洲在线| 免费看成人av| 国产精品久久网站| 欧美激情精品| 国产一区二区三区免费观看| 亚洲乱码国产乱码精品精天堂| 日韩亚洲成人av在线| 亚洲影音一区| 久久精品中文字幕免费mv| av成人天堂| 久久男人资源视频| 亚洲欧美日韩国产综合| 欧美成人亚洲成人| 久久国产精品久久久| 欧美日韩国产不卡| 欧美激情2020午夜免费观看| 亚洲欧洲日产国码二区| 国产美女精品免费电影| 亚洲日本黄色| 亚洲精品久久久久久久久久久久久 | 久久精品二区三区| 国产精品久久久久久久久久久久久久 | 在线看欧美视频| 亚洲一区二区综合| 亚洲一区视频在线| 欧美日韩国内| 亚洲区第一页| 亚洲精品久久久久中文字幕欢迎你| 久久精品亚洲乱码伦伦中文 | 国产精品毛片一区二区三区| 亚洲精品日韩一| 99综合电影在线视频| 欧美激情欧美狂野欧美精品| 欧美成人精品一区| 尤物九九久久国产精品的特点| 亚洲欧美在线观看| 久久成年人视频| 国产视频精品免费播放| 亚洲曰本av电影| 亚洲男人天堂2024| 国产精品色在线| 性欧美暴力猛交另类hd| 久久久国产精彩视频美女艺术照福利| 国产精品视频九色porn| 亚洲欧美伊人| 美女亚洲精品| 亚洲欧洲日产国码二区| 欧美理论大片| 亚洲一区二区三区高清不卡| 久久不射2019中文字幕| 尤物九九久久国产精品的特点| 美女网站在线免费欧美精品| 欧美国产乱视频| 亚洲精品国产精品乱码不99按摩| 欧美久色视频| 午夜精品影院| 欧美二区视频| 亚洲桃花岛网站| 国产一区二区精品久久| 免费观看一区| 亚洲视频专区在线| 久热精品视频| 一本不卡影院| 欧美一区三区三区高中清蜜桃| 国产视频精品免费播放| 麻豆精品视频在线观看| 亚洲精品在线观| 国产精品久久婷婷六月丁香| 久久国产一区二区三区| 亚洲精品123区| 久久国内精品视频| 亚洲六月丁香色婷婷综合久久| 国产精品高潮呻吟视频| 亚洲无线视频| 国产一区二区在线免费观看 | 久久久久久香蕉网| 亚洲精品久久久久久久久| 国产精品乱码一区二三区小蝌蚪| 久久精品欧美| 亚洲视频欧洲视频| 欧美大片第1页| 欧美一级久久久久久久大片| 亚洲韩日在线| 国产资源精品在线观看| 欧美色综合网| 欧美成人精品福利| 久久久精品tv| 亚洲欧美日韩国产综合| 亚洲精品一区二区三区av| 巨胸喷奶水www久久久免费动漫| 亚洲一区二区三区涩| 亚洲日本中文字幕免费在线不卡| 国产永久精品大片wwwapp| 欧美色视频一区| 欧美激情精品久久久久久大尺度| 欧美在线观看网站| 亚洲欧美日韩专区| 亚洲男人av电影| 亚洲一区在线看|