首页 > 代码库 > SPOJ:NPC2016A(数学)
SPOJ:NPC2016A(数学)
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(数学)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。