• BZOJ 1041 圆上的整点 数学


    题目链接:

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

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

    思路:

    看视频:

    思路:
    对于半径的平方进行质因数分解为p1q1p2q2...pnqn,ans = 4 * ∏(q1+1)(对于所有的pi满足模3为1)
    由于这里给的半径是整数,直接对半径进行质因数分解,半径的平方只需在每个指数上乘以2即可。
     1 #include<bits/stdc++.h>
     2 #define IOS ios::sync_with_stdio(false);//不可再使用scanf printf
     3 #define Max(a, b) ((a) > (b) ? (a) : (b))//禁用于函数,会超时
     4 #define Min(a, b) ((a) < (b) ? (a) : (b))
     5 #define Mem(a) memset(a, 0, sizeof(a))
     6 #define Dis(x, y, x1, y1) ((x - x1) * (x - x1) + (y - y1) * (y - y1))
     7 #define MID(l, r) ((l) + ((r) - (l)) / 2)
     8 #define lson ((o)<<1)
     9 #define rson ((o)<<1|1)
    10 #define Accepted 0
    11 #pragma comment(linker, "/STACK:102400000,102400000")//栈外挂
    12 using namespace std;
    13 inline int read()
    14 {
    15     int x=0,f=1;char ch=getchar();
    16     while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
    17     while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    18     return x*f;
    19 }
    20 
    21 typedef long long ll;
    22 const int maxn = 100 + 10;
    23 const int MOD = 1000000007;//const引用更快,宏定义也更快
    24 const int INF = 1e9 + 7;
    25 const double eps = 1e-6;
    26 
    27 int main()
    28 {
    29     ll n;
    30     cin >> n;
    31     while(n % 2 == 0)n /= 2;
    32     ll ans = 1;
    33     for(ll i = 3; i <= n; i += 2)
    34     {
    35         if(i % 4 == 3)
    36         {
    37             while(n % i == 0)n /= i;
    38             continue;
    39         }
    40         if(n % i == 0)
    41         {
    42             ll tmp = 0;
    43             while(n % i == 0)tmp++, n /= i;
    44             ans *= (tmp * 2 + 1);
    45         }
    46     }
    47     if(n % 4 == 1 && n > 1)ans *= 3;
    48     ans *= 4;
    49     cout<<ans<<endl;
    50     return Accepted;
    51 }
     
  • 相关阅读:
    C++ | Int转十六进制字符串
    Qt | QML Image SSL handshake failed
    《大话数据结构》第一章 数据结构绪论
    8组Beta冲刺4/5
    8组Beta冲刺1/5
    8组Beta冲刺3/5
    8组Beta冲刺2/5
    8组Beta冲刺5/5
    软工实践个人总结
    8组Beta冲刺总结
  • 原文地址:https://www.cnblogs.com/fzl194/p/9684067.html
Copyright © 2020-2023  润新知