编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#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;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:3 ms
内存:280 KiB

输入文件(1.in

3 35941
583.04714 3121.03022
1806.86186 1416.16563
4984.18545 200.02605

答案文件(1.ans

15854.07033788921762607060

用户输出

15854.070338

Special Judge 信息

OK Error:0.00000011078237349693

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:3 ms
内存:388 KiB

输入文件(2.in

15 21331
504.05781 3250.88951
1718.34697 1497.03649
3702.66308 378.64555
4424.20987 234.65996
4821.3
<235 bytes omitted>

答案文件(2.ans

29335.84794469948246842250

用户输出

29335.847945

Special Judge 信息

OK Error:0.00000030051753086013

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:3 ms
内存:288 KiB

输入文件(3.in

15 35155
1903.22247 1332.58007
2542.13948 884.86186
4344.54468 244.96285
5745.72528 258.28156
7454.5
<234 bytes omitted>

答案文件(3.ans

32799.81410184111882699654

用户输出

32799.814102

Special Judge 信息

OK Error:0.00000015888117133045

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:3 ms
内存:284 KiB

输入文件(4.in

100 21315
202.73110 4838.10150
207.03370 4740.24226
222.70360 4533.69633
233.73077 4431.95278
304.67
<2075 bytes omitted>

答案文件(4.ans

29761.25504531784099526703

用户输出

29761.255045

Special Judge 信息

OK Error:0.00000031784099441268

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:3 ms
内存:292 KiB

输入文件(5.in

100 34201
202.23054 4853.68467
206.74735 4745.58106
289.91929 4075.26238
488.79146 3360.18368
513.94
<2079 bytes omitted>

答案文件(5.ans

32998.22863424615934491158

用户输出

32998.228634

Special Judge 信息

OK Error:0.00000024615934535177

系统信息

Exited with return code 0