HDU1162---Eddy's picture
来源:互联网 发布:社区矫正软件 编辑:程序博客网 时间:2024/05/02 20:44
虽然是1A,但是调试了10分钟左右,主要是把定义全局变量n后,又在main里重新定义了一次,导致n值混乱,改过之后把测试注释去掉后直接1A。
#include<stdio.h>#include<string.h>#include<math.h>using namespace std;double map[110][110],dis[110],x[110],y[110];int vis[110],n;#define inf 0xffffffvoid init(){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) map[i][j]=inf; x[i]=y[i]=0; }}double dist(int i,int j){ return sqrt( (x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));}void prime(){ double ans=0; for(int i=1;i<=n;i++) { dis[i]=map[1][i]; vis[i]=0; } vis[1]=1; for(int i=1;i<n;i++) { double min=inf; int k; for(int j=1;j<=n;j++) { if(!vis[j]&&min>dis[j]) { k=j; min=dis[j]; } } // printf("min=%f",min); vis[k]=1; ans+=min; // printf("ans=%.2f\n",ans); for(int j=1;j<=n;j++) { if(!vis[j]&&dis[j]>map[k][j]) dis[j]=map[k][j]; } } printf("%.2f\n",ans);}int main(){ while(scanf("%d",&n)!=EOF) { init(); scanf("%lf%lf",&x[1],&y[1]); for(int i=2;i<=n;i++){ scanf("%lf %lf",&x[i],&y[i]); for(int j=1;j<i;j++) {map[i][j]=map[j][i]=dist(i,j); // printf("%d %d %f\n",i,j,dist(i,j)); } } prime(); }}
0 0
- Eddy's picture hdu1162
- Eddy's Picture(Hdu1162)
- HDU1162 Eddy's picture
- hdu1162-Eddy's picture
- hdu1162-Eddy's picture
- HDU1162:Eddy's picture
- HDU1162---Eddy's picture
- HDU1162-Eddy's picture
- HDU1162 Eddy's picture【Prim】
- HDU1162——Eddy's picture
- hdu1162 Eddy's picture(prim模板)
- HDU1162 Eddy's picture 最小生成树
- hdu1162 Eddy's picture (prim最小生成树)
- hdu1162 Eddy's picture (最小生成树之prim 算法)
- hdu1162 Eddy's picture(prim和kruskal)
- HDU1162 Eddy's picture 【最小生成树Prim】
- hdu1162 Eddy's picture 并查集+最小生成树
- HDU1162-Eddy's picture-最小生成树(prim算法模板)
- MAVEN:JUnit 配置
- 使用Mantle处理Model层对象
- jquery设置radio
- 玛咖新品牌 卡皇玛卡4月上市
- JQuery Validate自带验证例子
- HDU1162---Eddy's picture
- Onvif裁剪(一)
- C# + Xamarin开发Android应用 --- Tab的实现
- 让你的 WordPress 赚钱的三个插件
- Java中堆内存和栈内存详细描述(转载)
- Fiddler2 抓取android模拟器HTTP请求操作配置
- Onvif剪裁(二)
- 第八周项目 3 分数类中的运算符重载(续)
- MAC 配置SVN SERVER