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

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>
            久久男人资源视频| 免费成人性网站| 一区二区三区精品国产| 欧美精品七区| 亚洲欧美另类国产| 欧美一级电影久久| 一区二区在线观看视频| 欧美黑人多人双交| 欧美精品一区二| 亚洲欧美日韩一区二区三区在线| 亚洲一级黄色| 在线观看日产精品| 亚洲精品在线看| 国产欧美日韩一级| 欧美成人精品高清在线播放| 欧美精品一区二区三区一线天视频| 亚洲性视频h| 欧美在线关看| 日韩一级免费观看| 亚洲欧美在线x视频| 亚洲国产另类精品专区 | 亚洲精品视频中文字幕| 日韩一级黄色大片| 国外成人在线视频| 日韩一区二区精品| 一区二区三区在线观看国产| 亚洲精品无人区| 国产综合香蕉五月婷在线| 亚洲二区视频在线| 国产日韩欧美精品综合| 亚洲激情国产精品| 韩国av一区二区三区在线观看| 91久久亚洲| 18成人免费观看视频| 亚洲一区制服诱惑| 在线亚洲欧美视频| 久久婷婷综合激情| 欧美在线亚洲一区| 欧美日韩精品是欧美日韩精品| 久久久天天操| 国产精品久久婷婷六月丁香| 亚洲国产精品黑人久久久 | 欧美成人激情在线| 久久精品午夜| 国产精品毛片va一区二区三区| 亚洲成人在线网站| 激情亚洲网站| 久久精品官网| 久久久久这里只有精品| 国产精品美女久久久久久久| 日韩视频精品在线观看| 亚洲精品视频一区| 免费欧美网站| 欧美激情中文字幕乱码免费| 国内成+人亚洲| 香蕉尹人综合在线观看| 欧美一区二区日韩| 国产精品久久久久久久久动漫| 亚洲美女91| 亚洲视频第一页| 欧美日韩黄色大片| 日韩视频在线一区| 在线一区二区三区做爰视频网站| 欧美精品一区二区三区很污很色的 | 亚洲精品综合精品自拍| 美女日韩在线中文字幕| 欧美成人精品在线视频| 亚洲丰满在线| 欧美激情1区2区| 亚洲精品少妇网址| 亚洲在线成人精品| 国产精品中文字幕在线观看| 亚洲免费一级电影| 久久久久国色av免费看影院| 精品av久久707| 噜噜噜91成人网| 91久久久久久国产精品| 亚洲五月六月| 国产欧美精品va在线观看| 小处雏高清一区二区三区| 久久免费国产精品1| 亚洲电影专区| 欧美日本国产在线| 亚洲天堂偷拍| 老司机一区二区三区| 亚洲精品四区| 国产目拍亚洲精品99久久精品| 午夜国产精品视频| 欧美高清视频在线| 亚洲午夜激情| 狠狠88综合久久久久综合网| 美女日韩欧美| 亚洲欧美精品伊人久久| 裸体歌舞表演一区二区| 一区二区三区日韩在线观看| 国产精品午夜av在线| 久久免费99精品久久久久久| 日韩午夜免费视频| 久久久www| 99pao成人国产永久免费视频| 国产精品久久久久aaaa九色| 久久久久久久性| 亚洲小说欧美另类社区| 欧美成人精品| 欧美一区二区在线观看| 亚洲免费av网站| 精品电影在线观看| 国产精品美女久久久久aⅴ国产馆| 久久婷婷国产综合国色天香| 亚洲午夜一区二区三区| 欧美激情精品久久久久久黑人| 午夜精品一区二区在线观看| 亚洲精品小视频| 激情婷婷久久| 国产视频精品xxxx| 欧美体内谢she精2性欧美 | 亚洲免费观看高清在线观看 | 久久久蜜桃精品| 亚洲一区视频在线| 亚洲精品一区二区三区樱花| 国产在线观看91精品一区| 欧美日韩一区二区视频在线观看| 久久久噜噜噜久久人人看| 亚洲欧美美女| 中文欧美在线视频| 夜夜嗨一区二区三区| 最新日韩精品| 亚洲福利视频一区| 农夫在线精品视频免费观看| 久久国产免费| 久久国产福利| 久久九九久精品国产免费直播| 午夜精品三级视频福利| 亚洲午夜性刺激影院| 日韩一级黄色大片| 99在线精品观看| 亚洲精品在线免费| 亚洲裸体俱乐部裸体舞表演av| 亚洲高清资源综合久久精品| 伊人久久噜噜噜躁狠狠躁 | 国产欧美日本一区视频| 国产精品久久久对白| 欧美视频成人| 国产精品高清在线观看| 国产精品久久精品日日| 国产精品久久7| 国产精品综合不卡av| 国产毛片一区二区| 国产一区久久| 亚洲国产mv| 99精品99久久久久久宅男| 一区二区动漫| 香蕉免费一区二区三区在线观看 | 亚洲第一中文字幕| 亚洲欧洲综合| 一区二区三区.www| 亚洲一区免费观看| 欧美亚洲日本一区| 久久一二三区| 欧美国产视频在线观看| 国产精品第一页第二页第三页| 国产精品激情偷乱一区二区∴| 国产精品永久| 亚洲国产欧洲综合997久久| 日韩午夜激情av| 欧美亚洲一区二区在线| 美日韩精品视频| 亚洲人体影院| 午夜精品视频在线| 免费在线播放第一区高清av| 欧美午夜电影在线观看| 国产日本欧美一区二区三区在线 | 国产一区二区丝袜高跟鞋图片| 尤物视频一区二区| 一区二区三区福利| 久久伊人免费视频| 亚洲免费观看视频| 久久久噜噜噜久久中文字免| 欧美日韩精品一区二区三区四区 | 国产乱码精品| 亚洲肉体裸体xxxx137| 午夜精品亚洲一区二区三区嫩草| 久久综合电影| 亚洲一区影音先锋| 欧美成人国产va精品日本一级| 国产噜噜噜噜噜久久久久久久久| 亚洲二区视频在线| 久久成人国产精品| 99国产精品久久久| 美女日韩欧美| 国内揄拍国内精品久久 | 国产一区二区三区在线观看精品| 99国产欧美久久久精品| 久久午夜视频| 亚洲欧美精品伊人久久| 欧美日韩精品不卡| 亚洲欧洲精品一区| 欧美mv日韩mv国产网站| 小黄鸭视频精品导航| 国产精品户外野外|