码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj 1041: [HAOI2008]圆上的整点

时间:2016-03-02 00:18:29      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cmath>
 4 using namespace std;
 5 int sum;
 6 long long R;
 7 bool pan(int a1,double a4)
 8 {
 9     int a2=floor(a4);
10     if(a2!=a4)
11       return 0;
12     int a3=a1%a2;
13     for(;a3;)
14       {
15         a1=a2;
16         a2=a3;
17         a3=a1%a2;
18       }
19     if(a2==1&&a1!=a2)
20       return 1;
21     return 0;
22 }
23 int main()
24 {
25     scanf("%lld",&R);
26     for(int i=1;i<=sqrt(2*R);i++)
27       if((2*R)%i==0)
28         {
29            for(int a=1;a<=sqrt((2*R)/(2*i));a++)
30              if(pan(a,sqrt(((2*R)/i)-a*a)))
31                sum++;
32            if((2*R)/i!=i)
33              for(int a=1;a<=sqrt(i/2);a++)
34                if(pan(a,sqrt(i-a*a)))
35                  sum++; 
36         }
37     printf("%d\n",4*sum+4);
38 }

这是个脑洞大开的数学题 http://blog.csdn.net/csyzcyj/article/details/10044629

bzoj 1041: [HAOI2008]圆上的整点

标签:

原文地址:http://www.cnblogs.com/xydddd/p/5232763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!