博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj2728 Desert King
阅读量:4318 次
发布时间:2019-06-06

本文共 1580 字,大约阅读时间需要 5 分钟。

还比较好做的题,直接01分数规划二分答案即可,n小完全图用prim

然而

cnmd

double不可以用memset初始化我透

#include
#include
#include
#include
#include
using namespace std;const int N=1007;const double eps=1e-6;struct city{ int x,y,v;}c[N];double rr[N][N],cost[N][N],a[N][N],mid,d[N],ans,l,r;int n;bool v[N];double len(int x,int y){ return sqrt((c[x].x-c[y].x)*(c[x].x-c[y].x)+(c[x].y-c[y].y)*(c[x].y-c[y].y));}int main(){ //freopen("in","r",stdin); //freopen("out.out","w",stdout); while(1){ double num=0.0; scanf("%d",&n); if(n==0)break; for(int i=1;i<=n;i++){ scanf("%d%d%d",&c[i].x,&c[i].y,&c[i].v); } for(int i=1;i<=n;i++) for(int j=i;j<=n;j++){ rr[j][i]=rr[i][j]=len(i,j); num+=(cost[i][j]=cost[j][i]=abs(c[i].v-c[j].v)); } l=0.0,r=100; while(l+eps<=r){ mid=(l+r)/2; ans=0; for(int i=1;i<=n;i++) for(int j=i;j<=n;j++){ if(i==j)a[i][j]=0x3f3f3f3f; else a[i][j]=a[j][i]=cost[i][j]-mid*rr[i][j]; } for (int i = 1; i <= n; i++) d[i] =0x3f3f3f3f; memset(v,0,sizeof(v)); d[1]=0; while(1){ int x=0; for(int j=1;j<=n;j++) if(!v[j]&&(x==0||d[j]
=0)l=mid; else r=mid; } printf("%.3f\n",l); } return 0;}

 

转载于:https://www.cnblogs.com/Hikigaya/p/10884360.html

你可能感兴趣的文章
底部导航栏-----FragmentTabHost
查看>>
在linux中安装jdk以及tomcat并shell脚本关闭启动的进程
查看>>
网络字节顺序
查看>>
飞扬的小鸟
查看>>
程序猿崛起3——这一次,我用行动说话
查看>>
MVC HtmlHelper用法大全
查看>>
SQL分布式查询、跨数据库查询
查看>>
python国内豆瓣源
查看>>
redux、immutablejs和mobx性能对比(三)
查看>>
jQuery实现简单而且很酷的返回顶部链接效果
查看>>
电梯调度程序的UI设计
查看>>
转自 zera php中extends和implements的区别
查看>>
Array.of使用实例
查看>>
【Luogu】P2498拯救小云公主(spfa)
查看>>
如何获取网站icon
查看>>
几种排序写法
查看>>
java 多线程的应用场景
查看>>
dell support
查看>>
转:Maven项目编译后classes文件中没有dao的xml文件以及没有resources中的配置文件的问题解决...
查看>>
MTK android 设置里 "关于手机" 信息参数修改
查看>>