用户输出
15854.070338
Special Judge 信息
OK Error:0.00000011078237349693
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#21769 | #1012. L. 注重风控,风火轮模型 | Accepted | 100 | 15 ms | 388 K | C++ / 1.3 K | 电类904-穆琳杰 | 2020-02-10 11:07:10 |
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int m;
double r, S = 0, temp, d1, c[1000][2];
//计算一号点到二号点的距离
double d(double x1, double y1, double x2, double y2) {
return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
//计算角1-2-3的弧度
double jjiao(double x1, double y1, double x2, double y2, double x3, double y3) {
double a1 = x3 - x2;
double b1 = y3 - y2;
double a2 = x1 - x2;
double b2 = y1 - y2;
return acos((a1 * a2 + b1 * b2) / (d(x1, y1, x2, y2) * d(x2, y2, x3, y3)));
}
//得到旋转角
double xzjiao(double x1, double y1, double x2, double y2, double x3, double y3, int r) {
double a = d(x1, y1, x2, y2); // d1-2
double b = d(x3, y3, x2, y2); // d2-3
double delt = acos(a / (2 * r)) + acos(b / (2 * r)) - jjiao(x1, y1, x2, y2, x3, y3);
return delt;
}
int main() {
cin >> m >> r;
for (int i = 1; i <= m; i++) cin >> c[i][0] >> c[i][1];
for (int i = 2; i <= m - 1; i++) { //计算旋转角度
temp = xzjiao(c[i - 1][0], c[i - 1][1], c[i][0], c[i][1], c[i + 1][0], c[i + 1][1], r);
//计算旋转中心到1号点的距离
d1 = d(c[i][0], c[i][1], c[1][0], c[1][1]);
//计算旋转距离
S = temp * d1 + S;
}
temp = xzjiao(c[m - 1][0], c[m - 1][1], c[m][0], c[m][1], c[1][0], c[1][1], r); //特殊旋转点m点
d1 = d(c[m][0], c[m][1], c[1][0], c[1][1]);
S = S + temp * d1;
printf("%0.6lf", S);
return 0;
}
用户输出
15854.070338
Special Judge 信息
OK Error:0.00000011078237349693
系统信息
Exited with return code 0
15 21331
504.05781 3250.88951
1718.34697 1497.03649
3702.66308 378.64555
4424.20987 234.65996
4821.3
<235 bytes omitted>
用户输出
29335.847945
Special Judge 信息
OK Error:0.00000030051753086013
系统信息
Exited with return code 0
15 35155
1903.22247 1332.58007
2542.13948 884.86186
4344.54468 244.96285
5745.72528 258.28156
7454.5
<234 bytes omitted>
用户输出
32799.814102
Special Judge 信息
OK Error:0.00000015888117133045
系统信息
Exited with return code 0
100 21315
202.73110 4838.10150
207.03370 4740.24226
222.70360 4533.69633
233.73077 4431.95278
304.67
<2075 bytes omitted>
用户输出
29761.255045
Special Judge 信息
OK Error:0.00000031784099441268
系统信息
Exited with return code 0