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

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.       除源點外,為其他所有節(jié)點Vi找一條權值最小的入邊,加入集合T。T就是最短邊的集合。加邊的方法:遍歷所有點到Vi的邊中權值最小的加入集合T,記pre[Vi]為該邊的起點,mincost[Vi]為該邊的權值。

3.       檢查集合T中的邊是否存在有向環(huán),有則轉到步驟4,無則轉到步驟5。這里需要利用pre數組,枚舉檢查過的點作為搜索的起點,類似dfs的操作判斷有向環(huán)。

4.       將有向環(huán)縮成一個點。設環(huán)中有點{Vk1,Vk2,…,Vki}i個點,用Vk代替縮成的點。在壓縮后的圖中,更新所有不在環(huán)中的點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 極限定律 閱讀(687) 評論(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>
            亚洲天堂网在线观看| 欧美日韩成人在线播放| 国产日韩欧美黄色| 亚洲欧美国产精品专区久久| 亚洲午夜精品视频| 国产日韩精品久久久| 久久se精品一区精品二区| 一区二区三区在线看| 99精品国产热久久91蜜凸| 国语自产在线不卡| 亚洲美女网站| 亚洲全黄一级网站| 亚洲欧美另类在线| 亚洲一区免费看| 久久久精品国产一区二区三区| 黄色亚洲在线| 亚洲欧美国产三级| 亚洲自拍电影| 欧美日韩国产小视频| 榴莲视频成人在线观看| 欧美激情自拍| 亚洲精品日韩精品| 国自产拍偷拍福利精品免费一| 亚洲国产成人午夜在线一区 | 欧美第一黄网免费网站| 久久久999精品| 久久女同精品一区二区| 国产精品视频在线观看| 亚洲一区二区三区在线| 亚洲一级电影| 欧美日韩在线看| 日韩一区二区电影网| 一区二区三区久久| 国产精品久久久久久久午夜| 一区二区91| 久久综合网络一区二区| 激情五月婷婷综合| 欧美影院视频| 日韩亚洲精品视频| 久久精品女人的天堂av| 在线激情影院一区| 噜噜爱69成人精品| 一区二区三区欧美在线| 亚洲三级国产| 国产精品99久久久久久白浆小说| 欧美国产日韩免费| 亚洲欧美日韩国产综合精品二区| 久久久亚洲欧洲日产国码αv | 亚洲欧美色婷婷| 国产伦精品一区二区三| 另类酷文…触手系列精品集v1小说| 欧美黑人在线观看| 欧美中日韩免费视频| 这里只有精品在线播放| 亚洲啪啪91| 亚洲国产黄色| 91久久黄色| 亚洲国产精品va在线观看黑人| 国产精品综合av一区二区国产馆| 欧美激情精品| 欧美日韩一区二区三区四区五区| 久久综合久久综合久久| 久久久精品欧美丰满| 欧美一区二区高清| 久久久噜噜噜久久人人看| 久久精品30| 欧美不卡视频一区发布| 欧美片第1页综合| 欧美色123| 国产综合激情| 亚洲国产老妈| 亚洲欧美激情精品一区二区| 亚洲欧美日韩国产成人| 噜噜噜91成人网| 美女福利精品视频| 国产精品毛片a∨一区二区三区|国| 国产精品户外野外| 尤物99国产成人精品视频| 亚洲电影成人| 欧美一级专区| 亚洲福利专区| 欧美亚洲综合久久| 欧美成年人视频网站| 国产精品久久久久久久久久妞妞 | 欧美日韩国产成人高清视频| 欧美午夜片在线免费观看| 亚洲福利久久| 久久精品视频在线播放| 亚洲精品在线一区二区| 欧美一区二区视频观看视频| 欧美乱大交xxxxx| 亚洲成色最大综合在线| 欧美一区二区三区免费视频| 亚洲精品在线二区| 久久这里只有精品视频首页| 国产精品亚洲精品| 亚洲欧美日韩综合国产aⅴ| 亚洲国产欧美一区二区三区丁香婷| 欧美在线看片| 国产专区欧美精品| 久久嫩草精品久久久精品一 | 亚洲精品久久7777| 欧美成人精品在线| 欧美激情一二区| 亚洲黄色成人网| 亚洲人成在线观看| 午夜视频一区二区| 日韩午夜在线播放| 欧美视频一区二区三区四区| 亚洲一区二区三区免费视频| 一本色道久久综合亚洲精品小说| 国产精品av久久久久久麻豆网| 亚洲美女网站| 日韩视频永久免费观看| 国产亚洲激情在线| 欧美成人一二三| 欧美三区美女| 欧美jizzhd精品欧美巨大免费| 久久久久久久综合色一本| 亚洲在线黄色| 亚洲人成网站影音先锋播放| 一区二区免费在线播放| 精品电影一区| 午夜精品久久久久久久久久久久久 | 91久久精品久久国产性色也91| 一区二区三区四区精品| 激情校园亚洲| 亚洲欧美日韩一区在线观看| 亚洲国内自拍| 久久国产手机看片| 久久精品亚洲精品国产欧美kt∨| 欧美女主播在线| 欧美精品大片| 欧美寡妇偷汉性猛交| 夜夜爽av福利精品导航| 国产日韩综合| 亚洲一级影院| 亚洲一区二区三区影院| 欧美日韩人人澡狠狠躁视频| 欧美承认网站| 最新亚洲激情| 欧美电影免费网站| 亚洲国产日韩欧美一区二区三区| 黄色成人av在线| 欧美在线视频网站| 久久久久www| 狠狠色狠狠色综合系列| 亚洲欧美成人一区二区三区| 久久国产免费看| 国产一在线精品一区在线观看| 久久成人精品| 亚洲激情视频网| 午夜一级在线看亚洲| 国内精品视频在线播放| 欧美不卡在线视频| 亚洲视频福利| 亚洲成在线观看| 亚洲一区二区三区四区视频| 国产亚洲一区二区三区| 欧美精品一区二区久久婷婷| 亚洲激情图片小说视频| 久久99伊人| 亚洲视屏在线播放| 黄色一区二区三区四区| 欧美午夜大胆人体| 美女主播一区| 久久成人免费视频| 一区二区av在线| 亚洲国产片色| 欧美xxx成人| 欧美a级片网| 久久国产精品色婷婷| 亚洲欧美日韩国产中文| 亚洲最新视频在线| 亚洲欧洲在线播放| 在线看片欧美| 亚洲黄色免费网站| 亚洲国产激情| 久久尤物视频| 亚洲欧美三级伦理| 亚洲视频成人| 午夜精品国产精品大乳美女| 亚洲一区二区影院| 欧美一区二区三区的| 久久超碰97中文字幕| 久久婷婷国产综合精品青草| 亚洲欧美日韩国产精品| 午夜精品999| 久久精品二区亚洲w码| 母乳一区在线观看| 欧美日韩国产高清| 国产亚洲成av人在线观看导航| 国产美女一区二区| 在线日韩电影| 亚洲欧美日韩国产另类专区| 久久精品官网| 夜夜嗨av一区二区三区四区| 亚洲女同在线| 欧美成va人片在线观看| 国产精品天天看|