JZOJ5401. 【NOIP2017提高A组模拟10.8】Star Way To Heaven
来源:互联网 发布:win10系统自带优化 编辑:程序博客网 时间:2024/06/04 20:04
题目大意
要求一个最小的半径,
以每个点为圆心画一个圆,上下边界各向外延伸,使得上下边界联通。
题解
用最小生成树,
这里是完全图,只能用prim算法。
最后在最小生成树上面,
从上边界走到下边界的路径上面的最大值就是答案。
code
#include<queue>#include<cstdio>#include<iostream>#include<algorithm>#include <cstring>#include <string.h>#include <cmath>#include <math.h>#define ll long long#define N 6003#define db double#define P putchar#define G getchar#define mo 998244353using namespace std;char ch;void read(int &n){ n=0; ch=G(); while((ch<'0' || ch>'9') && ch!='-')ch=G(); ll w=1; if(ch=='-')w=-1,ch=G(); while('0'<=ch && ch<='9')n=(n<<3)+(n<<1)+ch-'0',ch=G(); n*=w;}db max(db a,db b){return a>b?a:b;}db min(db a,db b){return a<b?a:b;}ll abs(ll x){return x<0?-x:x;}ll sqr(ll x){return x*x;}void write(ll x){if(x>9) write(x/10);P(x%10+'0');}struct node{ int x,y;}a[N];int n,m,k,w[N],pos,x;int nxt[N],to[N],b[N],tot;bool bz[N];db ans,t,f[N],v[N];db get(int i,int j){ if(i==0)return m-a[j].y; if(j>k)return a[i].y; return sqrt(sqr(a[i].x-a[j].x)*1.00+sqr(a[i].y-a[j].y)*1.00);}void dfs(int x,int fa,db mx){ if(x>k) { ans=mx; return; } for(int i=b[x];i;i=nxt[i]) dfs(to[i],x,max(mx,v[i]));}void ins(int x,int y,db z){ nxt[++tot]=b[x]; to[tot]=y; v[tot]=z; b[x]=tot;}int main(){ freopen("starway.in","r",stdin); freopen("starway.out","w",stdout); memset(bz,1,sizeof(bz)); read(n);read(m);read(k); for(int i=1;i<=k;i++) read(a[i].x),read(a[i].y),f[i]=get(0,i); x=0;f[k+1]=m; while(x!=k+1) { t=2147483647; for(int i=1;i<=k+1;i++) if(bz[i] && f[i]<t)t=f[i],pos=i; bz[pos]=0;ins(w[pos],pos,t);x=pos; for(int i=1;i<=k+1;i++) if(bz[i])f[i]=min(get(x,i),f[i]),w[i]=x; } dfs(0,-1,0); printf("%.8lf",ans/2);}
阅读全文
0 0
- JZOJ5401. 【NOIP2017提高A组模拟10.8】Star Way To Heaven prim求mst
- JZOJ5401. 【NOIP2017提高A组模拟10.8】Star Way To Heaven
- JZOJ 5401. 【NOIP2017提高A组模拟10.8】Star Way To Heaven
- JZOJ 5401. 【NOIP2017提高A组模拟10.8】Star Way To Heaven
- 【NOIP2017提高A组模拟10.8】Star Way To Heaven(欧几里得距离最小生成树Prim做法)
- 【JZOJ 5402】【NOIP2017提高A组模拟10.8】God Knows
- jzoj5402 【NOIP2017提高A组模拟10.8】God Knows
- 【NOIP2017提高A组模拟10.8】Lost My Music
- A【NOIP2017提高组模拟12.18】
- 【JZOJ4928】【NOIP2017提高组模拟12.18】A
- 【NOIP2017提高组模拟12.18】A
- 【JZOJ4928】【NOIP2017提高组模拟12.18】A
- 【NOIP2017提高A组模拟7.7】图
- 【NOIP2017提高A组模拟7.13】abcd
- 区间【NOIP2017提高A组模拟7.10】
- 【NOIP2017提高A组模拟8.22】密码
- 【NOIP2017提高A组模拟8.23】密码
- 【NOIP2017提高A组模拟8.24】早苗
- HDOJ 1008 Elevator
- jquery get-post请求
- sublime text3 突然不能使用ctrl+e和tab
- 计算机网络和操作系统知识点总结
- BZOJ 4803: 逆欧拉函数 素数测试 搜索
- JZOJ5401. 【NOIP2017提高A组模拟10.8】Star Way To Heaven
- 两个数比较
- Codeforces Round #401 (Div. 2) D. Cloud of Hashtags
- ffmpeg下载安装的步骤
- Android——线程中的通信(一)
- PAT 乙级练习题1024. 科学计数法 (20)
- 从零开始学SpringBoot笔记002(热部署)
- HTTP Live Streaming(HLS)详解
- springmvc 异常001---在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案