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

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>
            亚洲经典视频在线观看| 99国产精品99久久久久久| 久久夜色精品| 欧美电影免费观看高清| 91久久视频| 亚洲精品综合在线| 亚洲一区日韩在线| 久久综合伊人| 一本色道久久99精品综合| 欧美一区二区在线免费播放| 老司机午夜精品视频| 欧美日韩精品在线视频| 国产在线视频欧美| 一区二区三区精品| 玖玖玖国产精品| 你懂的国产精品| 国产视频精品网| 日韩视频永久免费观看| 亚洲欧美电影在线观看| 欧美成在线观看| 欧美人与禽猛交乱配视频| 狠狠综合久久av一区二区小说 | 欧美亚洲综合在线| 黑人极品videos精品欧美裸| 欧美成人中文| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲国产日本| 亚洲少妇最新在线视频| 欧美成人蜜桃| 亚洲国产日本| 午夜精品一区二区三区在线播放| 欧美视频在线观看免费网址| 亚洲高清视频一区二区| 久久尤物电影视频在线观看| 欧美激情一二三区| 亚洲精品在线免费| 欧美亚洲一级| 亚洲一区二区三| 日韩一二三在线视频播| 欧美高清不卡| 中日韩美女免费视频网址在线观看| 亚洲国产日韩欧美| 欧美国产成人精品| 久久久久综合网| 久久精品国产一区二区三| 国产精品尤物| 午夜精品免费视频| 亚洲一区视频| 国产欧美日韩视频在线观看 | 国产午夜精品久久久久久久| 最新高清无码专区| 亚洲国产精品久久久久| 亚洲欧美视频在线观看| 国产一区二区三区丝袜| 久久综合久久久| 国产精品亚洲片夜色在线| 亚洲精品中文字幕女同| 国产精品爽黄69| 亚洲九九精品| 一区二区欧美在线观看| 欧美成年视频| 亚洲国产高清在线| 国产精品久久久久久久久| 欧美一区91| 久久久精品午夜少妇| 久久激情综合| 欧美激情精品| 亚洲国产成人精品久久| 亚洲国产成人久久综合| 久久久久久综合| 亚洲午夜精品久久久久久浪潮| 欧美成人综合| 亚洲精品免费一二三区| 国产麻豆视频精品| 亚洲免费一级电影| 亚洲精品韩国| 亚洲欧美日韩在线观看a三区| 亚洲欧美久久| 国产日韩在线看片| 欧美一区二区成人6969| 老司机成人在线视频| 在线观看福利一区| 亚洲一区二区视频| 久久成人国产精品| 欧美视频中文一区二区三区在线观看 | 国产午夜精品全部视频播放 | 亚洲精品午夜| 亚洲在线观看视频网站| 国产精品午夜av在线| 欧美影院成年免费版| 亚洲图中文字幕| 国产欧美va欧美va香蕉在| 亚洲欧美视频一区| 欧美福利一区二区三区| 亚洲天堂av电影| 国产欧美一区二区三区国产幕精品| 久久成人精品电影| 性久久久久久久久| 欧美日韩中文字幕精品| 午夜影院日韩| 欧美激情视频一区二区三区免费 | 欧美成人午夜激情在线| 一区二区三区蜜桃网| 久久久久久久久久久成人| 国产精品盗摄久久久| 久久国产99| 日韩亚洲欧美精品| 久久久久久久久久久久久9999 | 欧美片在线观看| 亚洲欧美中文日韩在线| 亚洲国产老妈| 欧美亚洲一区在线| 99视频精品在线| 欧美日韩大片| 久久精品网址| 亚洲一区国产| 亚洲激情视频在线| 久久综合久久综合久久| 亚洲欧美日韩久久精品| 亚洲精品久久久蜜桃| 国产一区二区久久| 国产精品国产自产拍高清av王其| 久久综合一区二区三区| 性欧美18~19sex高清播放| 亚洲精品国产拍免费91在线| 久久亚洲高清| 久久国产精彩视频| 午夜精品久久久久久久久久久| 亚洲欧洲一区二区三区| 欧美区日韩区| 美女网站久久| 夜夜精品视频一区二区| 亚洲大片精品永久免费| 久久一区二区三区四区五区| 欧美一区二区在线免费观看| 亚洲一区二区免费| 亚洲天堂男人| 中文精品视频一区二区在线观看| 亚洲国产天堂久久综合网| 好吊一区二区三区| 国内精品嫩模av私拍在线观看| 国产精品久久久久久久免费软件| 亚洲欧美日本国产专区一区| 亚洲免费观看| 亚洲蜜桃精久久久久久久| 亚洲国产日韩欧美| 亚洲国产精品成人精品| 欧美福利精品| 亚洲激情视频网站| 亚洲精品一区二区三区婷婷月| 亚洲精华国产欧美| 亚洲乱码国产乱码精品精天堂| 最新国产成人在线观看| 亚洲国产成人久久综合| 亚洲国产精品成人综合| 亚洲国产精品尤物yw在线观看| 亚洲电影下载| 日韩视频在线观看免费| 一区二区三区成人| 亚洲欧美国产精品专区久久| 亚洲欧美怡红院| 久久久www成人免费毛片麻豆| 久久米奇亚洲| 亚洲欧美日韩一区二区| 欧美一级一区| 久久男女视频| 欧美日韩成人在线观看| 欧美日韩国产区一| 国产九九精品视频| 国内外成人免费激情在线视频网站| 国产一区二区三区四区hd| 在线成人亚洲| 一区二区电影免费观看| 校园春色国产精品| 欧美1级日本1级| 久久在精品线影院精品国产| 免费成人黄色片| 久久精品99久久香蕉国产色戒| 久久夜色精品| 亚洲人成在线观看网站高清| 亚洲图片自拍偷拍| 日韩一区二区久久| 欧美一区免费视频| 欧美日韩大陆在线| 韩国三级电影一区二区| 日韩亚洲在线观看| 久久精品一本| 日韩一级精品| 久久亚洲精品伦理| 国产精品海角社区在线观看| 在线电影一区| 亚洲欧美综合国产精品一区| 免费日本视频一区| 午夜精品影院| 欧美久久视频| 亚洲国产精品国自产拍av秋霞| 亚洲尤物视频网| 亚洲国产精品va在线看黑人| 欧美亚洲综合另类| 欧美性jizz18性欧美|