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

posts - 7,comments - 3,trackbacks - 0
Command Network
Time Limit: 1000MSMemory Limit: 131072K
Total Submissions: 7267Accepted: 2160

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


裸的最小樹形圖,我就是為了檢驗模板....結果還錯了.....%.2lf在POJ上用G++會莫名的掛掉,所以用C++就行了。
代碼:
#include <cstdio>
#include 
<cstring>
#include 
<cmath>
#include 
<algorithm>
#define MAXN 110
#define INF 1e30
using namespace std;

inline 
double sqr(double x)
{
    
return x * x;
}

struct point
{
    
double _x, _y;
    
double dist_with(const point &rh) const
    {
        
return sqrt(sqr(_x - rh._x) + sqr(_y - rh._y));
    }
} po[MAXN];

double g[MAXN][MAXN];

int pre[MAXN];
bool is_out[MAXN];
int vis[MAXN], vcnt;

double solve(int n, int root)
{
    memset(is_out, 
false, n);
    
double ans = 0;
    
while (1)
    {
        
int i, j, k;
        
for (i = 0; i < n; ++i)
            
if (i != root && !is_out[i])
            {
                pre[i] 
= i;
                
for (j = 0; j < n; ++j)
                    
if (!is_out[j] && g[pre[i]][i] > g[j][i])
                        pre[i] 
= j;
                
if (pre[i] == i) throw false;
            }
        
for (i = 0; i < n; ++i)
            
if (i != root && !is_out[i])
            {
                j 
= i;
                vis[i] 
= ++vcnt;
                
while (vis[pre[j]] != vcnt && pre[j] != root)
                {
                    j 
= pre[j];
                    vis[j] 
= vcnt;
                }
                
if (pre[j] == i)
                    
break;
            }
        
if (i == n)
        {
            
for (j = 0; j < n; ++j)
                
if (j != root && !is_out[j])
                    ans 
+= g[pre[j]][j];
            
break;
        }
        j 
= i;
        
do
        {
            is_out[j] 
= true;
            ans 
+= g[pre[j]][j];
            j 
= pre[j];
        } 
while (j != i);
        
for (int j = 0; j < n; ++j)
            
if (vis[j] == vcnt)
                
for (int k = 0; k < n; ++k)
                    
if (!is_out[k])
                    {
                        
if (g[i][k] > g[j][k])
                            g[i][k] 
= g[j][k];
                        
if (g[k][i] > g[k][j] - g[pre[j]][j] && g[k][j] != INF)
                            g[k][i] 
= g[k][j] - g[pre[j]][j];
                    }
        is_out[i] 
= false;
    }
    
return ans;
}

int main()
{
    
int n, m;
    
while (scanf("%d%d"&n, &m) != EOF)
    {
        
for (int i = 0; i < n; ++i)
            
for (int j = 0; j < n; ++j)
                g[i][j] 
= INF;
        
for (int i = 0; i < n; ++i)
            scanf(
"%lf%lf"&po[i]._x, &po[i]._y);
        
for (int i = 0; i < m; ++i)
        {
            
int a, b;
            scanf(
"%d%d"&a, &b);
            
if (a != b)
                g[a 
- 1][b - 1= po[a - 1].dist_with(po[b - 1]);
        }
        
try
        {
            printf(
"%.2lf\n", solve(n, 0));
        }
        
catch (bool)
        {
            printf(
"poor snoopy\n");
        }
    }
    
return 0;
}
posted on 2011-10-15 22:18 LLawliet 閱讀(182) 評論(0)  編輯 收藏 引用 所屬分類: 圖論
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区三区久久精品| av成人老司机| 午夜精彩国产免费不卡不顿大片| 欧美成年人视频| 亚洲大胆在线| 久久中文精品| 在线亚洲一区观看| 欧美日韩视频在线第一区| 亚洲国产欧美一区二区三区同亚洲| 欧美一级黄色网| 亚洲自拍偷拍色片视频| 欧美三级网址| 狠狠入ady亚洲精品| 另类欧美日韩国产在线| 久久精品国产综合| 激情欧美丁香| 欧美**字幕| 欧美韩日一区| 亚洲免费成人av| aa国产精品| 国产乱码精品一区二区三区av| 亚洲一区欧美二区| 亚洲欧美日韩一区在线| 国产欧美一区二区在线观看| 亚洲中字在线| 欧美在线观看一区二区三区| 黄色成人在线网站| 亚洲国产另类精品专区| 欧美日本一区二区高清播放视频| 亚洲精品资源美女情侣酒店| 99国产精品久久| 国产色婷婷国产综合在线理论片a| 久久精品中文字幕一区二区三区| 久久久999精品免费| 亚洲日本成人在线观看| 野花国产精品入口| 国产自产女人91一区在线观看| 老司机精品久久| 欧美日韩精品综合| 亚洲一区影院| 麻豆精品视频在线| 亚洲网站在线观看| 久久久久se| 这里只有精品丝袜| 久久精品亚洲| 亚洲一区二区三区四区中文| 久久国产99| 亚洲视频在线一区观看| 久久免费视频观看| 亚洲欧美另类中文字幕| 久久精品观看| 亚洲性线免费观看视频成熟| 久久精品国产久精国产爱| 99v久久综合狠狠综合久久| 午夜精品久久久久久99热软件| 国产日韩欧美一区二区三区在线观看| 免费看亚洲片| 欧美激情bt| 欧美成人激情在线| 国产情人节一区| 亚洲精品你懂的| 国产模特精品视频久久久久| 最近看过的日韩成人| 黄色成人片子| 亚洲一区二区三区在线看| 亚洲人成网站在线观看播放| 欧美一级专区免费大片| 亚洲午夜激情网站| 欧美在线播放一区| 香蕉精品999视频一区二区| 欧美黄免费看| 美女露胸一区二区三区| 国产主播一区二区三区| 亚洲欧美日韩国产一区二区三区 | 亚洲国产精品成人| 国产亚洲在线| 亚洲日韩欧美视频| 亚洲精品国精品久久99热一| 久久久久亚洲综合| 久久精品国产欧美亚洲人人爽| 欧美视频在线免费| 99视频在线观看一区三区| 亚洲精品国产精品国自产观看| 欧美一区在线看| 久久久久久久久久久成人| 国产酒店精品激情| 亚洲欧美综合网| 久久xxxx精品视频| 国产一区二三区| 西西人体一区二区| 久久国产加勒比精品无码| 国产亚洲电影| 欧美一级片久久久久久久| 久久国产精品毛片| 好吊视频一区二区三区四区 | 欧美亚洲一区二区三区| 国产精品久线观看视频| 亚洲一区二区三区精品动漫| 亚洲男人第一av网站| 国产精品激情| 一区二区三区国产在线观看| 亚洲自拍偷拍一区| 国产欧美成人| 欧美一级片在线播放| 欧美阿v一级看视频| 91久久精品久久国产性色也91| 欧美福利视频| 一区二区不卡在线视频 午夜欧美不卡在| 99re66热这里只有精品3直播| 欧美日本不卡| 午夜精品福利一区二区蜜股av| 欧美激情亚洲另类| 久久不见久久见免费视频1| 亚洲精品日韩精品| 国产在线不卡精品| 欧美日韩中文字幕综合视频 | 亚洲另类一区二区| 久久久久免费视频| 亚洲一区www| 亚洲精品网站在线播放gif| 国产欧美日韩另类一区| 欧美片在线观看| 久色成人在线| 性做久久久久久久免费看| 亚洲精品视频免费观看| 麻豆精品91| 久久精品久久99精品久久| 中文精品一区二区三区| 亚洲国产激情| 黑丝一区二区| 国产偷国产偷亚洲高清97cao| 欧美视频在线观看视频极品| 欧美chengren| 美女黄毛**国产精品啪啪| 久久国产精品免费一区| 亚洲性视频网址| 亚洲一区日本| 亚洲视频在线一区观看| 99国产精品99久久久久久| 亚洲国产精品久久人人爱蜜臀 | 久久精品国产一区二区三区| 亚洲综合色激情五月| 亚洲九九精品| 亚洲精品欧美日韩| 亚洲精品欧美| 99在线精品视频| 一本大道久久a久久精品综合| 亚洲国产精品www| 亚洲国产高清自拍| 亚洲国产日韩在线| 亚洲欧洲精品一区| 亚洲精品一区在线| 一区二区av在线| 一本色道久久加勒比88综合| 日韩性生活视频| 一二三区精品| 亚洲与欧洲av电影| 午夜精品久久久久久99热软件| 亚洲欧美文学| 久久久999| 欧美激情精品| 亚洲精品美女久久7777777| 99热在这里有精品免费| 亚洲一卡二卡三卡四卡五卡| 性久久久久久久久久久久| 久久久国产午夜精品| 女同性一区二区三区人了人一 | 亚洲欧美视频| 久久久免费精品| 欧美日韩成人精品| 国产人成一区二区三区影院| 伊人色综合久久天天| 日韩视频在线一区二区三区| 亚洲女女女同性video| 久久久九九九九| 最新高清无码专区| 亚洲小说欧美另类婷婷| 久久精品一本| 欧美三级乱码| 国内精品美女在线观看| 亚洲免费观看高清完整版在线观看熊| 一区二区三区 在线观看视频| 欧美中文字幕久久| 亚洲国产高清在线| 亚洲欧美一区二区精品久久久| 久久久久一区二区三区四区| 欧美日韩三级视频| 悠悠资源网亚洲青| 亚洲欧美日韩国产综合精品二区| 久久免费观看视频| 9i看片成人免费高清| 久久国产一区| 国产精品伦理| aaa亚洲精品一二三区| 久久久一区二区| 亚洲一区二区视频| 欧美精品18videos性欧美| 国内精品一区二区三区| 亚洲小少妇裸体bbw| 亚洲国产cao|