zoukankan      html  css  js  c++  java
  • 【BZOJ】1041: [HAOI2008]圆上的整点(几何)

    http://www.lydsy.com:808/JudgeOnline/problem.php?id=1041

    所谓的神题,我不会,直接题解。。看了半天看懂题解了。详见hzwer博客

    这题呢,我只能吸收些思想,即,当我们要找合法解的时候,我们可以深究它的性质,然后用性质来判定是否存在合法解。

    此神题直接看题解打码。

    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <iostream>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    #define rep(i, n) for(int i=0; i<(n); ++i)
    #define for1(i,a,n) for(int i=(a);i<=(n);++i)
    #define for2(i,a,n) for(int i=(a);i<(n);++i)
    #define for3(i,a,n) for(int i=(a);i>=(n);--i)
    #define for4(i,a,n) for(int i=(a);i>(n);--i)
    #define CC(i,a) memset(i,a,sizeof(i))
    #define max(a,b) ((a)>(b)?(a):(b))
    #define min(a,b) ((a)<(b)?(a):(b))
    #define read(a) a=getnum()
    #define print(a) printf("%d", a)
    #define debug(a) printf("%lld
    ", a)
    inline int getnum() { int ret=0; char c; for(c=getchar(); c<'0' || c>'9'; c=getchar()); for(; c>='0' && c<='9'; c=getchar()) ret=ret*10+c-'0'; return ret; }
    typedef long long ll;
    ll gcd(ll a, ll b) { return b?gcd(b, a%b):a; }
    
    inline bool check(ll A, ll B) {
    	if(((ll)sqrt(B)*(ll)sqrt(B))==B && A!=B)
    		if(gcd(A, B)==1) return true;
    	return false;
    }
    
    int main() {
    	int ans=0;
    	ll d, d2, r, r2;
    	scanf("%lld", &r);
    	r2=r<<1;
    	ll m=sqrt(r2);
    	ll a;
    	for(d=1; d<=m; ++d) {
    		if(!(r2%d)) {
    			d2=d<<1;
    			for(a=1; a<=(ll)sqrt(r2/d2); ++a)
    				if(check(a*a, r2/d-a*a)) ++ans;
    			if(d!=r2/d) {
    				for(a=1; a<=(ll)sqrt(d/2); ++a)
    					if(check(a*a, d-a*a)) ++ans;
    			}
    		}
    	}
    	printf("%lld
    ", (ll)(ans*4+4));
    	return 0;
    }
    

    Description

    求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数。

    Input

    r

    Output

    整点个数

    Sample Input

    4

    Sample Output

    4

    HINT

    n<=2000 000 000

    Source

  • 相关阅读:
    linux 安装 tomcat
    IE条件注释
    了解常见的开源协议(BSD, GPL, LGPL,MIT)
    Ueditor 1.4.3 单独调用上传图片,或文件功能
    javascript代码规范 [转]
    html5 拖曳功能的实现[转]
    几种常用的正则表达式[转]
    MYSQL基础03(日期函数)
    MYSQL基础02(查询)
    OpenCV(7)-图像直方图
  • 原文地址:https://www.cnblogs.com/iwtwiioi/p/3893410.html
Copyright © 2011-2022 走看看