Codeforces 30D
来源:互联网 发布:网络电视直播翡翠台 编辑:程序博客网 时间:2024/05/16 10:58
题意从第k个点出发遍历所有的n+1个点,可以再任一点结束,的最短路
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 100100using namespace std;int n,k;double newtag;double xx[N];double ans;double y;double get_dis(int l){ return sqrt((xx[l]-xx[n+1])*(xx[l]-xx[n+1])+y*y);}double dis[N];double to[N];double calc1(int l,int r){ return xx[r]-xx[l]+min(get_dis(l),get_dis(r));}double calc2(int l,int r){ return xx[r]-xx[l]+min(get_dis(l)+fabs(newtag-xx[r]),get_dis(r)+fabs(newtag-xx[l]));}int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n+1;i++) { int x; scanf("%lf",&xx[i]); } scanf("%lf",&y); newtag=xx[k]; sort(xx+1,xx+n+1); if(k==n+1) { double ans=calc1(1,n); printf("%.10lf\n",ans); }else { double ans=calc2(1,n); for(int i=1;i<n;i++) { ans=min(ans,min(calc1(1,i)+calc2(i+1,n),calc2(1,i)+calc1(i+1,n))); } printf("%.10lf\n",ans); }}
0 0
- Codeforces 30D
- Codeforces Problemset 30D(#30 div.1 D)
- Codeforces 30D King's Problem? 模拟
- codeforces 30D King's Problem? 数学
- Educational Codeforces Round 30 D. Merge Sort
- Educational Codeforces Round 30 D.Merge Sort
- CodeForces 617D CodeForces 617D
- CodeForces 101D
- CodeForces 103D
- CodeForces 222D Olympiad
- codeforces 242d
- CodeForces 111D
- 【codeforces】3D
- CodeForces 127D Password
- codeforces 257D. Sum
- Codeforces 292D
- Codeforces 275D
- Codeforces 126D
- 第十七周—C语言 oj(2006)
- js去除浏览器默认底图
- 学习记录——运输层(3)
- java中Map,List与Set的区别
- 设计模式之工厂方法
- Codeforces 30D
- 批处理作业问题
- java web 图片上传功能
- 文本文件里如何快速在每行头尾都加上指定的内容---正则表达式(一)
- C# 结构体 struct
- jme3模型纹理合并导出j3o
- SUMO文档063:osmWebWizard
- 图像识别(8)——使用OpenCV预览USB摄像头+曝光设置
- 2017年做微商如何赚钱