圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point

Posted blues

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point相关的知识,希望对你有一定的参考价值。

 1 // 圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point
 2 // 思路:直接暴力绝对T
 3 // 先确定x范围,每个x范围内,离圆心最远的点一定是y轴两端的点。枚举x的范围,再比较y
 4 // O(n)
 5 
 6 #include <bits/stdc++.h>
 7 using namespace std;
 8 #define LL long long
 9 const double inf = 123456789012345.0;
10 const LL MOD =100000000LL;
11 const int N =1e7+10;
12 #define clc(a,b) memset(a,b,sizeof(a))
13 const double eps = 1e-7;
14 void fre() {freopen("in.txt","r",stdin);}
15 void freout() {freopen("out.txt","w",stdout);}
16 inline int read() {int x=0,f=1;char ch=getchar();while(ch>9||ch<0) {if(ch==-) f=-1; ch=getchar();}while(ch>=0&&ch<=9) {x=x*10+ch-0;ch=getchar();}return x*f;}
17 
18 double dis(double a,double b,double c,double d){
19     return (a-c)*(a-c)+(b-d)*(b-d);
20 }
21 int main(){
22     double x,y,r;
23     double len=-1;
24     int ans_y,ans_x;
25     scanf("%lf%lf%lf",&x,&y,&r);
26     for(double i=floor(x+r);i>=ceil(x-r);i--){
27         double d=(double)sqrt(r*r-(i-x)*(i-x));
28         double y1=floor(d+y),y2=ceil(y-d);
29         if(dis(x,y,i,y1)>len){
30             len=dis(x,y,i,y1);
31             ans_x=i,ans_y=y1;
32         }
33         if(dis(x,y,i,y2)>len){
34             len=dis(x,y,i,y2);
35             ans_x=i,ans_y=y2;
36         }
37     }
38     printf("%d %d\n",ans_x,ans_y);
39     return 0;
40 }

 

以上是关于圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point的主要内容,如果未能解决你的问题,请参考以下文章

撩课-Python-每天5道面试题-第5天

hiho一下第234周《矩形计数》题目与解答

[hiho一下 第195周]C solution[Accepted]

hiho一下第128周 后缀自动机二·重复旋律5

hiho一下 第148周

hiho一下 第173周