原题链接:算法集训队第二场考核赛_C.掌门人打桩

C.掌门人打桩

题目背景

传说在艾泽拉斯的潘达利亚,影踪派的掌门人祝踏岚擅于打桩,有着影踪派自家的一套绝学。

题目描述

来自暴风城远征队的你拜影踪派掌门为师。你发现,影踪寺里总共有 NNN 个圆柱体桩头,它们都是垂直摆放的,且半径都为 RRR 。现在,掌门人祝踏岚要求你弄一条定长的细线来将这些圆柱体绑一圈,求最短需要的细线长度(不计细绳直径)。

输入描述

第 111 行输入两个数:整数 NNN 和实数 RRR。
接下来的 NNN 行中按逆时针序给出这 NNN 个圆柱形桩头中心的横纵坐标,其中,坐标的绝对值不超过 100100100 。

输出描述

输出绳子的长度,精确到小数点后 222 位。

输入输出样例

输入 #1:

2 1
0.0 0.0
2.0 0.0

输出 #1:

10.28

输入 #2:

4 2
0.0 0.0
2.0 0.0
2.0 2.0
0.0 2.0

输出 #2:

20.57
说明/提示:

【数据范围】
圆周率取值:3.14159263.14159263.1415926;
1≤N≤1001 \leq N \leq 1001≤N≤100。

解决办法:

显而易见,当绕成的细线处在同一个水平面时,即为最短长度。因此,可以将本题从三维问题化简为二维问题,即在一个水平面上将几个柱子绑一圈。

如图所示为两个圆的情况,两点之间线段最短,因此将绳子“拉直”后相连为最短的情况,即红色部分。将红色的两个半圆拼接成一个圆的周长,再加上上下两条直线的周长,即为答案:

ans=2∗(x1−x2)2+(y1−y2)2+2ΠRans = 2 *\sqrt {(x_1 -x_2)^2 + (y_1 - y_2)^2} + 2ΠRans=2∗(x1​−x2​)2+(y1​−y2​)2​+2ΠR

参考代码:

#include<iostream>
#include<iomanip>
#include<cstring>
#include<math.h>
using namespace std;
#define PI = 3.1415926;
double x[1000], y[1000],R;
double ans = 0;
int main() {int N;cin >> N >> R;cin >> x[1] >> y[1];for (int i = 2; i <= N; i++){cin >> x[i] >> y[i];ans += 1.0 * sqrt(pow(x[i] - x[i - 1], 2) + pow(y[i] - y[i - 1],2));}ans += 1.0 * sqrt(pow(x[N] - x[1], 2) + pow(y[N] - y[1], 2)) + 2.0 * R * 3.1415926;printf("%.2lf", ans);return 0;
}

算法集训队第二场考核赛_C.掌门人打桩相关推荐

  1. 2020年第十一届蓝桥杯第二场省赛B组C++题解

    2020年第十一届蓝桥杯第二场省赛B组C++题解 题单 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 题单 第一题 小蓝要为一条街的住户制作门牌号. 这条街一共有 2020 位住户, ...

  2. 2020年第十一届蓝桥杯C/C++ B组第二场省赛真题

    2020年第十一届蓝桥杯C/C++ B组第二场省赛真题 第一题 门牌制作 题目描述 小蓝要为一条街的住户制作门牌号.这条街一共有2020位住户,门牌号从1到2020编号.小蓝制作门牌的方法是先制作0到 ...

  3. 2020年10月17日第十一届蓝桥杯第二场省赛试题及详解(Java本科B组)

    结果填空 (满分5分) 结果填空 (满分5分) 结果填空 (满分10分) 结果填空 (满分10分) 结果填空 (满分15分) 程序设计(满分15分) 程序设计(满分20分) 程序设计(满分20分) 程 ...

  4. 2021年05月09日第十二届蓝桥杯第二场省赛试题及详解(Java本科B组)

    结果填空 (满分5分) 结果填空 (满分5分) 结果填空 (满分10分) 结果填空 (满分10分) 结果填空 (满分15分) 程序设计(满分15分) 程序设计(满分20分) 程序设计(满分20分) 程 ...

  5. (第二场网络赛J题)Leaking Roof(bfs)

    题目链接:题目详情 (pintia.cn) 题意:n*n的网格每个格子有一个高度,格子的水会向和它相邻的高度比他低的格子流动,问所有高度0的格子最多有多少水. 思路:按高度从高到低排序,按此顺序直接模 ...

  6. The 2022 ICPC Asia Regionals Online Contest (II) 2022ICPC第二场网络赛 ABEFGJKL题解

    文章目录 A Yet Another Remainder[费马小定理] B Non-decreasing Array[线性DP] E An Interesting Sequence[签到] F Inf ...

  7. 第十一届蓝桥杯大赛(2020年)软件类省赛第二场 Python大学组 真题+个人解答

    试题A:门牌制作 本题总分:5分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有2020位住户,门牌号从1到2020编号. 小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将 ...

  8. 蓝桥杯 省赛 python_第十一届蓝桥杯软件省级大赛第二场python3,类省赛,Python3

    试题 A: 门牌制作 本题总分:5 分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有 2020 位住户,门牌号从 1 到 2020 编号. 小蓝制作门牌的方法是先制作 0 到 9 这几 ...

  9. 第十二届蓝桥杯大赛软件赛省赛第二场题解

    文章目录 A: 求余 [问题描述] ans B: 双阶乘 [问题描述] Code C: 格点 [问题描述] code D: 整数分解 [问题描述] 解题思路 code E: 城邦 [问题描述] 解题思 ...

最新文章

  1. 计算机组成原理第5章-中央处理器
  2. 模板代码复用的三种方式: 宏, 继承, 包含
  3. C# 声明方法关键字
  4. android edittext不可复制_Android中使EditText只读的方法(可恢复编辑状态)
  5. Kali Linux 秘籍 第四章 信息收集
  6. python机器学习梯度下降求解逻辑回归
  7. 2020年对我影响最深的观点是下面3个,你呢?
  8. java使用elasticsearch进行模糊查询-已在项目中实际应用
  9. eterm 350转443转接器
  10. nginx跨域配置、使用,docker部署nginx全流程(实测简单完整无坑)
  11. 微信公众平台怎么发PDF文件?
  12. 固定table首行或尾行
  13. C++ Qt 实现小游戏2048
  14. Visual Studio Code 配置C/C++编译环境流程及问题解决(Win10环境)
  15. 向幼儿群体提供实用的少儿编程
  16. vue实现自动语音播报功能,未解决。(已用js解决20220210)
  17. LeetCode每日一题打卡组队监督!刷题群!
  18. windows下如何下载android源码
  19. 攻防世界_难度8_happy_puzzle
  20. FMC板卡标准(二)FMC夹层卡模块

热门文章

  1. FND MESSAGE的用法
  2. 什么叫简正振动模式(即简正模)
  3. 有关STM32F103C8T6的超频
  4. 微信与php什么区别,微信小店和微信小程序的区别是什么?
  5. oracle查询所有员工人数,oracle查询员工人数最少的部门
  6. 添加额外jars包到Hive
  7. 微信文章排版技巧和相关排版工具
  8. m4a转wav格式方法和步骤
  9. 2022年浙江大学计算机考研复试分数线多少
  10. java基于微信小程序的英语学习激励系统-计算机毕业设计