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) { LL res = (a1-a2)(a1-a2)+(b1-b2)(b1-b2); return res; } int main() { #ifndef ONLINE_JUDGE // freopen("code/in.txt","r",stdin); #endif int T; cin>>T; while (T--) { scanf("%lld %lld",&x,&y); b = x + y; LL ans; ans = dis(x,y,0,b)*dis(x,y,b,0); cout<<LL(sqrt(ans))<<endl;

}

#ifndef ONLINE_JUDGE
fclose(stdin); #endif return 0; }