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

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 極限定律 閱讀(698) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC

<2009年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

導航

統計

常用鏈接

留言簿(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久久不卡二区 | 欧美激情视频一区二区三区在线播放 | 91久久精品国产91性色| 玖玖综合伊人| 久久夜色精品亚洲噜噜国产mv| 在线观看国产一区二区| 欧美aa在线视频| 麻豆av福利av久久av| 在线一区观看| 99精品99久久久久久宅男| 欧美日本乱大交xxxxx| 亚洲一区二区三区四区在线观看| 日韩午夜av电影| 国产女优一区| 欧美成人精品不卡视频在线观看| 欧美第一黄网免费网站| 中日韩视频在线观看| 亚洲一区免费在线观看| 激情伊人五月天久久综合| 欧美激情精品久久久久久蜜臀| 欧美日本一区| 久久精品国产69国产精品亚洲 | 欧美亚洲网站| 久久五月激情| 国产日本欧美一区二区三区在线| 亚洲欧美视频在线| 欧美在线日韩在线| 亚洲毛片网站| 欧美伊人久久久久久午夜久久久久| 激情小说另类小说亚洲欧美| 亚洲看片一区| 极品少妇一区二区| 亚洲一二三四区| 亚洲黄色成人| 午夜在线精品| 一区二区三区 在线观看视| 欧美在线视频观看免费网站| 日韩视频一区二区三区在线播放免费观看 | 欧美精品在线免费| 亚洲一区成人| 免费在线看成人av| 久久久久国产精品www| 欧美女同在线视频| 久久综合久久综合久久综合| 欧美婷婷六月丁香综合色| 久热精品视频在线观看| 国产精品美腿一区在线看| 欧美高潮视频| 狠狠色丁香婷综合久久| 亚洲一区二区三区视频| 亚洲作爱视频| 欧美风情在线观看| 巨胸喷奶水www久久久免费动漫| 欧美午夜美女看片| 亚洲国产精品黑人久久久| 国内精品久久久久影院薰衣草| 99re视频这里只有精品| 国产喷白浆一区二区三区 | 亚洲国产视频一区二区| 欧美一区二区三区播放老司机| 亚洲永久在线观看| 欧美日韩亚洲另类| 99精品欧美| 制服诱惑一区二区| 欧美三级欧美一级| 一区二区毛片| 亚洲一区二区精品视频| 欧美三级第一页| 日韩一区二区精品葵司在线| 999亚洲国产精| 欧美精品一区二区三| 亚洲第一级黄色片| 日韩亚洲在线观看| 欧美性猛片xxxx免费看久爱| 亚洲精品在线观| 亚洲一区二区三区在线看| 欧美日韩一区成人| 一区二区av在线| 午夜一区不卡| 艳女tv在线观看国产一区| 亚洲九九九在线观看| 欧美大秀在线观看| 日韩午夜激情| 午夜一级久久| 国外成人在线| 欧美xxx成人| 中文在线不卡| 久久九九热re6这里有精品| 激情亚洲成人| 欧美日本一区二区三区| 亚洲视频图片小说| 久久―日本道色综合久久| 亚洲高清视频在线观看| 欧美日韩天堂| 久久gogo国模裸体人体| 亚洲第一在线| 亚洲女女女同性video| 好吊色欧美一区二区三区四区| 蜜桃精品久久久久久久免费影院| 亚洲精品国产精品国自产观看浪潮| 亚洲视频观看| 影音先锋中文字幕一区| 欧美日韩综合视频| 久久精品一本| 日韩一本二本av| 葵司免费一区二区三区四区五区| 日韩亚洲视频在线| 黄色成人在线网址| 国产精品久久久久久久9999| 久久久久久综合| 一区二区三区 在线观看视| 久久久午夜视频| 亚洲一区精品在线| 最新国产精品拍自在线播放| 国产精品久久久久一区二区| 麻豆成人综合网| 欧美一区二区日韩一区二区| 亚洲经典一区| 美国十次了思思久久精品导航| 亚洲视频一二| 亚洲精品综合精品自拍| 国内精品免费在线观看| 国产精品久久午夜夜伦鲁鲁| 欧美本精品男人aⅴ天堂| 久久丁香综合五月国产三级网站| 日韩一区二区久久| 亚洲国产一区二区三区在线播| 久久影音先锋| 久久国产日韩欧美| 午夜久久久久久久久久一区二区| 99视频精品| 亚洲人成在线免费观看| 影音先锋日韩精品| 悠悠资源网亚洲青| 国产主播一区二区三区| 国产欧美亚洲精品| 国产精品视频久久久| 欧美午夜片欧美片在线观看| 欧美人与性动交cc0o| 欧美黄色精品| 欧美激情成人在线视频| 欧美国产免费| 欧美护士18xxxxhd| 欧美精品一区在线发布| 欧美精品九九| 欧美日韩精品在线观看| 欧美日韩国产综合久久| 亚洲男同1069视频| 亚洲精品国产日韩| 欧美激情1区2区3区| 麻豆91精品| 免费欧美电影| 欧美成人综合网站| 欧美激情国产高清| 亚洲精品1区2区| 亚洲六月丁香色婷婷综合久久| 亚洲国产精品一区| 99国产精品国产精品久久| 一区二区三区高清视频在线观看 | 樱桃成人精品视频在线播放| 韩国自拍一区| 红杏aⅴ成人免费视频| 亚洲电影av| 一本到高清视频免费精品| 亚洲综合国产| 久久久久久久久岛国免费| 美女精品一区| 亚洲精品中文字幕在线| 亚洲综合欧美日韩| 久久av资源网| 欧美一区三区二区在线观看| 久久久不卡网国产精品一区| 久久亚洲影院| 亚洲精选视频在线| 欧美亚洲综合网| 蜜乳av另类精品一区二区| 欧美日韩国产色综合一二三四| 国产精品一区二区久久久| 影音先锋亚洲精品| 一区二区三区四区蜜桃| 久久精品一区二区| 亚洲国产精品成人精品| 亚洲免费综合| 欧美黄色视屏| 国产一区二区三区的电影| 亚洲精品乱码久久久久久按摩观 | 国产一区二区三区高清播放| 亚洲高清视频一区二区| 亚洲欧美视频在线| 亚洲国产免费看| 欧美中文字幕在线播放| 欧美精品免费在线| 伊甸园精品99久久久久久| 亚洲欧美国内爽妇网| 亚洲二区精品| 性欧美精品高清| 国产精品久久久久久妇女6080 | 亚洲欧美日韩国产成人| 亚洲第一主播视频| 久久精视频免费在线久久完整在线看|