首页 > 其他 > 详细

SPOJ:NPC2016A(数学)

时间:2017-05-07 12:44:05      阅读:253      评论:0      收藏:0      [点我收藏+]

http://www.spoj.com/problems/NPC2016A/en/

题意:在一个n*n的平面里面,初始在(x,y)需要碰到每条边一次,然后返回(x,y),问最短路径是多长。

思路:像样例中给出的,假设一开始是在(x,y),那么走一个斜率为1和-1的路径,因为两边对称,所以ans = 2 * x * sin(45°) + 2 * (n - x) * sin(45°) = 2 * n * sqrt(2).

就是每次走的都是对角线的长度。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define N 110
 4 
 5 int main() {
 6     double x, y, n;
 7     cin >> x >> y >> n;
 8     double ans = 2 * n * sqrt(2.0);
 9     printf("%.6f\n", ans);
10     return 0;
11 }

 

SPOJ:NPC2016A(数学)

原文:http://www.cnblogs.com/fightfordream/p/6820193.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!