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

心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0
在《程序設計中常用的解題策略》中看到這道題,書上給出了這道題的MST解法,我自己想到的一個做法是“二分+圖遍歷”。
首先根據點的坐標構造圖G;
考慮到d的最優值一定是G中的一條邊的權值;
隨著d的減小,G中邊數減小,因此連通分量可能增加;
考慮到二分策略:O(logm);
遍歷圖,計算連通分量的個數N,如果N<=k,此時的d為一個可行解:O(m);
考慮到浮點誤差,在構造邊的時候不開根號,而用向量表示。
以下是我的代碼(沒有測試數據……):
#include<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#include
<math.h>
const long maxn=507,INF=20007;
typedef 
struct
{
    
long u,v,x,y;
}point;
long n,k,tot,ans;
point v[maxn],g[maxn][maxn],edge[maxn
*maxn];
bool used[maxn];
int cmp(point a,long dis)
{
    
return (a.x*a.x+a.y*a.y-dis);
}
void Qsort(long begin,long end)
{
    
long i=begin,j=end,t=(begin+end)/2;
    
long mid=edge[t].x*edge[t].x+edge[t].y*edge[t].y;
    
do{
        
while(cmp(edge[i],mid)<0) i++;
        
while(cmp(edge[j],mid)>0) j--;
        
if(i<=j)
        {
            point t
=edge[i];edge[i]=edge[j];edge[j]=t;
            i
++;j--;
        }
    }
while(i<=j);
    
if(begin<j) Qsort(begin,j);
    
if(i<end)   Qsort(i,end);
}
void dfs(long now,long limit)
{
    used[now]
=true;
    
for(long i=1;i<=n;i++)
        
if(!used[i]&&cmp(g[now][i],limit)<=0)
        {
            used[i]
=true;
            dfs(i,limit);
        }
}
long travel(point p)
{
    
long dis=p.x*p.x+p.y*p.y,re;
    re
=0;
    memset(used,
false,sizeof(used));
    
for(long i=1;i<=n;i++)
        
if(!used[i])
        {
            dfs(i,dis);
            re
++;
        }
    
return re;
}
long bsearch(long begin,long end)
{
    
long re=end;
    
while(begin<end)
    {
        
long mid=(begin+end)/2;
        
if(travel(edge[mid])<=k)
        {
            re
=mid;
            end
=mid;
        }
        
else begin=mid+1;
    }
    
return re;
}
int main()
{
    
//*
    freopen("data.in","r",stdin);
    freopen(
"data.out","w",stdout);
    
//*/
    scanf("%ld%ld",&n,&k);
    
for(long i=1;i<=n;i++)
        scanf(
"%ld%ld",&v[i].x,&v[i].y);
    
//  Input
    for(long i=1;i<=n;i++)
        
for(long j=1;j<=n;j++)
            g[i][j].x
=g[i][j].y=INF;
    tot
=1;
    edge[tot].u
=edge[tot].v=edge[tot].x=edge[tot].y=0;
    
for(long i=1;i<=n;i++)
        
for(long j=1;j<=n;j++)
            
if(i!=j)
            {
                g[i][j].u
=i;
                g[i][j].v
=j;
                g[i][j].x
=abs(v[i].x-v[j].x);
                g[i][j].y
=abs(v[i].y-v[j].y);
                tot
++;
                edge[tot]
=g[i][j];
            }
    
//  Distance
    Qsort(1,tot);
    
//for(long i=1;i<=tot;i++)printf("%ld %ld %ld %ld\n",edge[i].u,edge[i].v,edge[i].x,edge[i].y);
    ans=bsearch(1,tot);
    printf(
"%.2lf\n",sqrt(edge[ans].x*edge[ans].x+edge[ans].y*edge[ans].y));
return 0;
}


posted on 2010-02-20 14:14 lee1r 閱讀(289) 評論(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>
            精品69视频一区二区三区| 午夜精品久久久久久久白皮肤| 亚洲美女区一区| 在线不卡视频| 亚洲国产高清自拍| 亚洲日韩视频| 亚洲香蕉成视频在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲午夜视频在线| 久久精品国产亚洲精品| 可以看av的网站久久看| 欧美国产在线电影| 亚洲九九精品| 亚洲综合首页| 麻豆国产va免费精品高清在线| 欧美国产乱视频| 国产精品xnxxcom| 国内久久婷婷综合| 亚洲久色影视| 久久久国产午夜精品| 欧美激情乱人伦| 亚洲一区二区三区精品在线观看 | 欧美日韩亚洲综合一区| 国产农村妇女精品一二区| 亚洲电影下载| 欧美亚洲视频在线看网址| 欧美激情无毛| 性欧美激情精品| 欧美人妖在线观看| 在线成人h网| 欧美成人亚洲成人| 欧美成人一区在线| 亚洲裸体俱乐部裸体舞表演av| 亚洲自拍三区| 欧美人与禽性xxxxx杂性| 狠狠噜噜久久| 欧美一级片一区| 日韩天天综合| 裸体女人亚洲精品一区| 国产欧美一区二区三区久久| 日韩视频在线一区二区| 乱人伦精品视频在线观看| 中文成人激情娱乐网| 欧美精品v国产精品v日韩精品| 黄色精品一区二区| 久久精品九九| 午夜精品久久久久久久| 国产精品美女久久久久久2018| 亚洲精品久久久久久久久久久久久| 久久国产欧美日韩精品| 亚洲一区二区成人| 国产精品v欧美精品∨日韩| 亚洲欧洲一二三| 欧美国产成人精品| 久久综合网hezyo| 在线看无码的免费网站| 久久国产精品高清| 99精品视频一区| 蜜臀av一级做a爰片久久| 国产精品红桃| 一区二区日本视频| 欧美激情一区二区三区四区| 午夜精品av| 好看的av在线不卡观看| 老牛国产精品一区的观看方式| 久久精品视频播放| 在线精品一区| 午夜亚洲视频| 亚洲宅男天堂在线观看无病毒| 亚洲高清视频在线观看| 欧美一区二区视频在线| 国产一区二区日韩精品欧美精品 | 中文日韩在线视频| 一区二区成人精品 | 中文av字幕一区| 在线视频日本亚洲性| 国产精品日韩一区二区| 久久www免费人成看片高清| 久久国产精品99国产| 在线成人av.com| 亚洲免费成人av电影| 国产精品视频精品| 蜜桃精品久久久久久久免费影院| 久久夜色撩人精品| 一本色道久久综合| 噜噜噜在线观看免费视频日韩| 亚洲第一区中文99精品| 欧美激情亚洲另类| 欧美日韩精品伦理作品在线免费观看 | 一区二区高清| 国产有码一区二区| 亚洲高清一二三区| 国产精品美女久久久免费| 蜜桃久久精品乱码一区二区| 欧美激情第3页| 欧美午夜精彩| 猛男gaygay欧美视频| 欧美日韩综合视频网址| 久久久久在线| 欧美视频官网| 蜜桃久久精品乱码一区二区| 欧美理论电影在线观看| 久久激情中文| 欧美日韩综合另类| 欧美国产日韩视频| 国产欧美三级| 一本色道精品久久一区二区三区| 韩国视频理论视频久久| 亚洲午夜激情在线| 亚洲狠狠婷婷| 久久久av水蜜桃| 欧美一区视频| 欧美小视频在线| 亚洲精品美女在线| 在线播放亚洲| 欧美一区二区在线播放| 亚洲免费在线观看视频| 欧美好吊妞视频| 欧美电影在线播放| 国产在线播精品第三| 亚洲一区一卡| 亚洲免费在线观看| 欧美视频精品在线观看| 亚洲国产精品小视频| 在线免费不卡视频| 久久激情五月激情| 久久精品视频免费播放| 国产精品中文在线| 国产精品99久久久久久久久久久久 | 久久高清国产| 欧美一级夜夜爽| 欧美午夜理伦三级在线观看| 亚洲人午夜精品| 99国内精品久久| 欧美日产一区二区三区在线观看| 欧美电影在线观看完整版| 亚洲国产中文字幕在线观看| 久久久亚洲午夜电影| 麻豆精品在线视频| 亚洲电影成人| 欧美人与禽猛交乱配视频| 亚洲国产婷婷综合在线精品| 亚洲乱码国产乱码精品精98午夜| 蜜桃伊人久久| 9久草视频在线视频精品| 久久久综合香蕉尹人综合网| 欧美一区二区三区视频在线观看| 午夜久久福利| 国产一区在线观看视频| 久久成人免费视频| 看欧美日韩国产| 亚洲精品一区在线观看| 欧美日本一区二区视频在线观看| 日韩香蕉视频| 欧美一区二区三区的| 国产中文一区二区三区| 久久五月天婷婷| 亚洲精品麻豆| 欧美在线视频观看免费网站| 国产一区二区三区在线播放免费观看 | 精品69视频一区二区三区| 麻豆精品精品国产自在97香蕉| 欧美激情一区二区三区全黄| 一区二区三区欧美激情| 国产精品一区二区久久久| 久久在线视频| 亚洲网在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲精品资源| 国产精品夜色7777狼人| 美女亚洲精品| 亚洲午夜视频在线观看| 蜜臀av在线播放一区二区三区| avtt综合网| 合欧美一区二区三区| 欧美日韩成人一区二区三区| 欧美一二三视频| 日韩手机在线导航| 久久综合色播五月| 一区二区三区日韩欧美| 国产一区二区欧美| 国产精品福利网| 欧美电影免费网站| 欧美一区二区成人6969| 日韩视频一区二区| 欧美夫妇交换俱乐部在线观看| 午夜精彩视频在线观看不卡| 亚洲经典在线| 伊人色综合久久天天五月婷| 国产精品精品视频| 欧美福利电影网| 久久久九九九九| 亚洲欧美日韩区| 亚洲视频大全| 亚洲精品黄网在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 午夜在线a亚洲v天堂网2018| 一区二区精品在线| 亚洲免费久久| 亚洲美女淫视频|