设为首页 加入收藏

TOP

hdu 4081 Qin Shi Huang's National Road System (最小生成树变形 两种解法 1.Prim 2.dfs)(二)
2015-11-21 01:39:19 来源: 作者: 【 】 浏览:12
Tags:hdu 4081 Qin Shi Huang' National Road System 最小 生成 变形 解法 1.Prim 2.dfs
?
感想:
这个思路我比赛时想到了,没想到构图,感觉找到两棵树中的最大的人口数不好处理,就放弃了这个思路,?(???)?,说多了都是泪,其实还是题做少了,算法学死了。。。
?
代码:
?
#include   
#include   
#include   
#include   
#define maxn 1005  
#define INF 0x3f3f3f3f  
using namespace std ;  
  
int n,m,cnt,nu,nv,maxp;  
bool vis[maxn];  
int pre[maxn];  
double sum,ans;  
double dist[maxn];  
double city[maxn][maxn],dd[maxn][maxn];  
struct Node  
{  
    int x,y,p;  
}pp[maxn];  
int pt[maxn];  
struct node  
{  
    int v,next;  
}edge[maxn<<1];  
struct Tnode  
{  
    int u,v;  
    double cost;  
}mst[maxn];  
  
void init()  
{  
    int i,j;  
    for(i=1;i<=n;i++)  
    {  
        dist[i]=INF;  
        for(j=1;j<=n;j++)  
        {  
            city[i][j]=INF;  
        }  
    }  
    cnt=0;  
    memset(pt,0,sizeof(pt));  
    memset(vis,0,sizeof(vis));  
}  
double caldist(int k1,int k2)  
{  
    double xx,yy;  
    xx=pp[k1].x-pp[k2].x;  
    yy=pp[k1].y-pp[k2].y;  
    return sqrt(xx*xx+yy*yy);  
}  
void presolve()  
{  
    int i,j;  
    for(i=1;i<=n;i++)  
    {  
        for(j=i+1;j<=n;j++)  
        {  
            city[i][j]=city[j][i]=caldist(i,j);  
        }  
    }  
}  
void addedge(int u,int v)  
{  
    cnt++;  
    edge[cnt].v=v;  
    edge[cnt].next=pt[u];  
    pt[u]=cnt;  
}  
void prim()  
{  
    int i,j,k,sz,now=1;  
    double mi;  
    sum=0;  
    vis[1]=1;  
    dist[1]=0;  
    for(i=1;i 
  

?


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇前后中括号正则匹配 下一篇1055. The World's Richest (..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: