题目链接:http://codeforces.com/gym/101149/problem/K
题目大意:
给你两个点a,b。一个人在a点,一个人在b点,b点的人要追杀a的点,他的跑步速度是a的两倍。如果a点的人能在b点追击到之前回到a点这个位置,那么这个人就是安全的(b点的人追击a点的人的追击方案是:一直朝着a点的人所在的位置奔跑过去)。问,这个人的安全区域是多少?
思路:几何果然不会= =,连sb题都没想到
因为是面积,所以说两点之间的距离就决定了最后的结果。因为题目给出的是单位面积。所以对于任意给出的两点,我们只需要让这个单位面积*两点距离的平方即可。
//看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #include <bits/stdc++.h> using namespace std; #pragma comment(linker,"/STACK:102400000,102400000") #define LL long long #define ALL(a) a.begin(), a.end() #define pb push_back #define mk make_pair #define fi first #define se second #define haha printf("haha ") double tmp = 0.916297857297023; int a, b, c, d; int main(){ cin >> a >> b >> c >> d; a = a - c, b = b - d; printf("%.10f ", 1.0 * (a * a + b * b) * tmp); return 0; }