算法集训队第二场考核赛_C.掌门人打桩
原题链接:算法集训队第二场考核赛_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.掌门人打桩相关推荐
- 2020年第十一届蓝桥杯第二场省赛B组C++题解
2020年第十一届蓝桥杯第二场省赛B组C++题解 题单 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 题单 第一题 小蓝要为一条街的住户制作门牌号. 这条街一共有 2020 位住户, ...
- 2020年第十一届蓝桥杯C/C++ B组第二场省赛真题
2020年第十一届蓝桥杯C/C++ B组第二场省赛真题 第一题 门牌制作 题目描述 小蓝要为一条街的住户制作门牌号.这条街一共有2020位住户,门牌号从1到2020编号.小蓝制作门牌的方法是先制作0到 ...
- 2020年10月17日第十一届蓝桥杯第二场省赛试题及详解(Java本科B组)
结果填空 (满分5分) 结果填空 (满分5分) 结果填空 (满分10分) 结果填空 (满分10分) 结果填空 (满分15分) 程序设计(满分15分) 程序设计(满分20分) 程序设计(满分20分) 程 ...
- 2021年05月09日第十二届蓝桥杯第二场省赛试题及详解(Java本科B组)
结果填空 (满分5分) 结果填空 (满分5分) 结果填空 (满分10分) 结果填空 (满分10分) 结果填空 (满分15分) 程序设计(满分15分) 程序设计(满分20分) 程序设计(满分20分) 程 ...
- (第二场网络赛J题)Leaking Roof(bfs)
题目链接:题目详情 (pintia.cn) 题意:n*n的网格每个格子有一个高度,格子的水会向和它相邻的高度比他低的格子流动,问所有高度0的格子最多有多少水. 思路:按高度从高到低排序,按此顺序直接模 ...
- 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 ...
- 第十一届蓝桥杯大赛(2020年)软件类省赛第二场 Python大学组 真题+个人解答
试题A:门牌制作 本题总分:5分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有2020位住户,门牌号从1到2020编号. 小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将 ...
- 蓝桥杯 省赛 python_第十一届蓝桥杯软件省级大赛第二场python3,类省赛,Python3
试题 A: 门牌制作 本题总分:5 分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有 2020 位住户,门牌号从 1 到 2020 编号. 小蓝制作门牌的方法是先制作 0 到 9 这几 ...
- 第十二届蓝桥杯大赛软件赛省赛第二场题解
文章目录 A: 求余 [问题描述] ans B: 双阶乘 [问题描述] Code C: 格点 [问题描述] code D: 整数分解 [问题描述] 解题思路 code E: 城邦 [问题描述] 解题思 ...
最新文章
- 计算机组成原理第5章-中央处理器
- 模板代码复用的三种方式: 宏, 继承, 包含
- C# 声明方法关键字
- android edittext不可复制_Android中使EditText只读的方法(可恢复编辑状态)
- Kali Linux 秘籍 第四章 信息收集
- python机器学习梯度下降求解逻辑回归
- 2020年对我影响最深的观点是下面3个,你呢?
- java使用elasticsearch进行模糊查询-已在项目中实际应用
- eterm 350转443转接器
- nginx跨域配置、使用,docker部署nginx全流程(实测简单完整无坑)
- 微信公众平台怎么发PDF文件?
- 固定table首行或尾行
- C++ Qt 实现小游戏2048
- Visual Studio Code 配置C/C++编译环境流程及问题解决(Win10环境)
- 向幼儿群体提供实用的少儿编程
- vue实现自动语音播报功能,未解决。(已用js解决20220210)
- LeetCode每日一题打卡组队监督!刷题群!
- windows下如何下载android源码
- 攻防世界_难度8_happy_puzzle
- FMC板卡标准(二)FMC夹层卡模块