hdoj 5605 || bc #68 div 2 1001 geometry

题意:geometry Accepts: 324 Submissions: 622 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) 问题描述 在平面直角坐标系上有一个点PP, 他的坐标是(x, y)(x,y). 有一条直线y = kx + by=kx+b经过了PP, 且分别交x, yx,y正半轴于A, BA,B. 求|PA| * |PB|∣PA∣∗∣PB∣的最小值. 输入描述 第一行一个TT, 表示数据组数. 接下来TT行每行两个正整数x,yx,y, 表示PP的坐标.

T=500, 0 < X, Y \leq 10000T=500,0/* *********************************************** Author :111qqz Created Time :2016年01月02日 星期六 18时56分10秒 File Name :code/bc/#68/1001.cpp ************************************************ */

#include #include #include #include #include #include #include #include #include #include #include #include #define fst first #define sec second #define lson l,m,rt«1 #define rson m+1,r,rt«1|1 #define ms(a,x) memset(a,x,sizeof(a)) typedef long long LL; #define pi pair < int ,int > #define MP make_pair

using namespace std; const double eps = 1E-8; const int dx4[4]={1,0,0,-1}; const int dy4[4]={0,-1,1,0}; const int inf = 0x3f3f3f3f; LL x,y; LL b; LL dis(LL a1,LL b1,LL a2,LL b2) {

1LL res = (a1-a2)*(a1-a2)+(b1-b2)*(b1-b2);
2return res;

} int main() {

1#ifndef  ONLINE_JUDGE 

// freopen(“code/in.txt”,“r”,stdin); #endif

 1int T;
 2cin>>T;
 3while (T--)
 4{
 5    scanf("%lld %lld",&x,&y);
 6    b = x + y;
 7    LL ans;
 8    ans = dis(x,y,0,b)*dis(x,y,b,0);
 9    cout<<LL(sqrt(ans))<<endl;
10
11}

#ifndef ONLINE_JUDGE
fclose(stdin); #endif

1return 0;

}