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

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>
            欧美成人第一页| 狠狠色狠色综合曰曰| 午夜精品福利在线| 91久久嫩草影院一区二区| 欧美中文字幕不卡| 亚洲少妇自拍| 亚洲精品久久嫩草网站秘色| 国内精品福利| 国产日韩欧美黄色| 国产精品美女| 欧美日韩一区二区三区在线看 | 国产一区二区三区久久久久久久久 | 99www免费人成精品| 欧美激情成人在线| 美女999久久久精品视频| 久久电影一区| 久久xxxx| 久久久成人网| 久久精品日韩| 久久久久中文| 久久久欧美精品| 久久亚洲综合色一区二区三区| 久久av一区二区三区漫画| 午夜亚洲视频| 午夜综合激情| 欧美影院一区| 亚洲全部视频| 久久在线免费观看| 日韩视频在线你懂得| 亚洲欧洲精品天堂一级| 亚洲欧洲另类| 亚洲美女91| 宅男噜噜噜66一区二区| 亚洲午夜久久久久久久久电影院| 亚洲视频一区二区在线观看| 亚洲午夜未删减在线观看| 亚洲一区二区久久| 亚洲欧美精品在线| 欧美专区福利在线| 久久九九国产| 欧美波霸影院| 亚洲日本成人网| 中文欧美在线视频| 性色av一区二区三区| 久久久伊人欧美| 欧美刺激性大交免费视频| 欧美日韩精品系列| 国产美女高潮久久白浆| 亚洲精品欧美| 亚洲精品一区二区在线| 亚洲视频axxx| 久久久xxx| 欧美另类综合| 国产精品手机视频| 韩日视频一区| 日韩亚洲欧美中文三级| 亚洲欧美日本国产专区一区| 久久久久免费观看| 欧美黄污视频| 亚洲一区免费在线观看| 久久裸体视频| 欧美日韩喷水| 国外视频精品毛片| 一区二区毛片| 久久亚洲精品一区二区| 亚洲国产另类久久久精品极度| 国产精品99久久久久久久久久久久 | 亚洲人午夜精品| 香蕉成人啪国产精品视频综合网| 久久资源在线| 欧美视频一区在线| 国产欧美视频一区二区| 亚洲精品中文字幕在线| 欧美在线黄色| 亚洲人永久免费| 久久精品国亚洲| 欧美午夜免费| 亚洲激情视频| 久久精品免费电影| 亚洲精品视频在线播放| 久久精品国产免费看久久精品| 欧美精品久久久久久久久老牛影院| 国产美女精品一区二区三区 | 日韩视频永久免费观看| 欧美一区影院| 亚洲精品乱码久久久久久日本蜜臀 | 久久在线免费观看| 国产精品99一区| 亚洲黄色有码视频| 欧美诱惑福利视频| 亚洲精品永久免费| 久久一区激情| 国产欧美亚洲日本| 一区二区三区日韩欧美| 欧美二区在线播放| 性欧美超级视频| 国产精品hd| 亚洲精品久久视频| 免费黄网站欧美| 欧美一二三视频| 国产精品久久久久久久久免费樱桃| 久久av红桃一区二区小说| 欧美日韩小视频| 日韩亚洲国产欧美| 欧美成人激情视频| 亚洲性视频h| 久久频这里精品99香蕉| 欧美日本一区| 亚洲福利视频网站| 久久大综合网| 亚洲一区二区三区欧美| 欧美日韩在线播放| 99热这里只有精品8| 欧美成人三级在线| 久久漫画官网| 影音先锋久久资源网| 久久精品视频在线播放| 亚洲午夜久久久久久久久电影院| 欧美日韩大陆在线| 99视频一区二区| 亚洲人成免费| 欧美精品国产一区| 亚洲美女在线观看| 欧美激情影院| 欧美成人蜜桃| 亚洲久久在线| 亚洲日韩欧美视频| 欧美精品在线视频| 亚洲免费观看视频| 亚洲欧洲在线一区| 欧美日韩成人综合| 亚洲一级黄色| 亚洲婷婷国产精品电影人久久 | 欧美日韩亚洲一区二区| av成人天堂| 日韩一区二区精品视频| 欧美色另类天堂2015| 亚洲影音先锋| 亚洲在线1234| 国产欧美日韩综合| 久久久久国内| 久久久久久一区| 亚洲高清一区二区三区| 欧美激情国产精品| 欧美精品在线观看| 亚洲影视综合| 午夜精品国产| 激情久久婷婷| 欧美激情精品久久久久久免费印度| 免费亚洲视频| 亚洲特级毛片| 亚洲欧美日韩精品久久久| 国外成人在线视频| 欧美国产一区二区在线观看 | 久久精品成人一区二区三区蜜臀 | 久热精品视频在线观看一区| 最新国产の精品合集bt伙计| 91久久精品国产91性色| 欧美激情女人20p| 欧美成人精品三级在线观看| 一区二区国产在线观看| 亚洲夜间福利| 狠狠综合久久| 亚洲国产精品国自产拍av秋霞| 欧美激情视频一区二区三区在线播放 | 欧美一二三视频| 久久精品2019中文字幕| 亚洲国产精品成人| 夜夜嗨av一区二区三区免费区| 国产日韩免费| 亚洲国产精品日韩| 国产精品美女午夜av| 狂野欧美一区| 欧美日韩精品欧美日韩精品 | 久久久精品国产99久久精品芒果| 亚洲国产一区二区三区高清| 一区二区欧美日韩视频| 国内在线观看一区二区三区| 日韩视频免费观看高清完整版| 国产一区二区成人久久免费影院| 亚洲高清在线视频| 国产精品亚洲第一区在线暖暖韩国| 你懂的亚洲视频| 国产精品日本一区二区| 欧美成人在线网站| 国产精品私拍pans大尺度在线| 欧美激情一区三区| 国产情人综合久久777777| 亚洲国产精品久久人人爱蜜臀 | 亚洲三级影片| 亚洲欧美日韩精品久久亚洲区| 亚洲精品国产日韩| 西瓜成人精品人成网站| 亚洲精品免费在线观看| 欧美一级在线播放| 99视频在线精品国自产拍免费观看 | 久久一区二区三区国产精品 | 亚洲欧洲日产国码二区| 亚洲欧美精品中文字幕在线| 亚洲精品一区二区在线观看|