「Luogu P2508」[HAOI2008]圆上的整点 解题报告
题面
给定圆的半径,求圆上整点数
这是一道很Nice的数学题!超爱!好吧,由于这道题,我去Study了一下复数(complex number)复杂的数
真棒!!!
有兴趣的戳这里!!!\(\huge \to\)
思路:
高斯素数的原理,将整数分解质因数后,再把每个质因数分解成高斯素数,对于质数4n+1,它可以有效的分解成高斯素数,而质数4n+3不能,因为3无法分解为高斯素数,所以当一个数有奇数个3因子时,这个圆上没有整点,而3的个数为偶数时,由于能分成两组配对,所以有整点,但3对Ans的影响为0,因为x*1=x,因此只要不变就行了,当由于2的高斯素数表示为1-i*1+i,所以2的个数对Ans无影响
对于25如下:
\[\large 25=5 \times 5
\]\[\large 25=(2-i)(2+i)(2-i)(2+i)
\]所以:
Left Right \(\large 1\) \(\large 1\) \(\large 2-i\) \(\large 2+i\) \(\large 2-i\) \(\large 2+i\) \(\large =3-4i\) \(\large =3+4i\) 这是一种情况\(\large (3,-4)\)
Left Right \(\large 2-i\) \(\large 2-i\) \(\large 2+i\) \(\large 2+i\) \(\large =5\) \(\large =5\) 这是一种情况\(\large (5,0)\)
Left Right \(\large 2+i\) \(\large 2+i\) \(\large 2+i\) \(\large 2+i\) \(\large =3+4i\) \(\large =3-4i\) 这是一种情况\(\large (3,-4)\)
而对于上述
\(\large \times\) \(\large 3-4i\) \(\large 5\) \(\large 3+4i\) \(\large -1\) \(\large -1+4i\) \(-5\) \(\large -3-4i\) \(\large i\) \(\large 4+3i\) \(\large 5i\) \(\large -4+3i\) \(\large -i\) \(\large -4-3i\) \(\large -5i\) \(\large 4-3i\) 所以一共有点对12对
那么高斯素数怎么表示点呢?
它只要一个数,就可以表示点的坐标,RT:

Code:
#include<bits/stdc++.h>
#define N 10000010
#define ll long long
using namespace std;
ll n,m,res,ans=4;
ll a[N],t,T;
ll p[N];
ll s[N];
bool b[N];
int main()
{
ll i,j;
scanf("%lld",&n);
m=n;
for(i=2;i*i<=m;i++)
{
if(!b[i])
{
a[++T]=i;
if(m%i==0)
{
p[++t]=i;
while(m%i==0)
{
m/=i;
s[t]++;
}
}
}
for(j=1;j<=T;j++)
{
if(a[j]*i*i*a[j]>m)
continue;
b[a[j]*i]=1;
if(i%a[j]==0)
continue;
}
}
if(m>1)
{
p[++t]=m;
s[t]=1;
}
for(i=1;i<=t;i++)
if((p[i]-1)%4==0)
ans*=(2*s[i]+1);
printf("%lld",ans);
return 0;
}
「Luogu P2508」[HAOI2008]圆上的整点 解题报告的更多相关文章
- 2021.12.06 P2508 [HAOI2008]圆上的整点(数论+ π )
2021.12.06 P2508 [HAOI2008]圆上的整点(数论+ \(\pi\) ) https://www.luogu.com.cn/problem/P2508 题意: 求一个给定的圆 \( ...
- BZOJ 1041: [HAOI2008]圆上的整点
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3621 Solved: 1605[Submit][Sta ...
- bzoj 1041: [HAOI2008]圆上的整点 数学
1041: [HAOI2008]圆上的整点 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- bzoj 1041: [HAOI2008]圆上的整点 本原勾股數組
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2027 Solved: 853[Submit][Stat ...
- 1041: [HAOI2008]圆上的整点
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4298 Solved: 1944[Submit][Sta ...
- BZOJ 1041: [HAOI2008]圆上的整点【数论,解方程】
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4210 Solved: 1908[Submit][Sta ...
- 【BZOJ1041】[HAOI2008]圆上的整点
[BZOJ1041][HAOI2008]圆上的整点 题面 bzoj 洛谷 题解 不妨设\(x>0,y>0\) \[ x^2+y^2=r^2\\ y^2=(x+r)(x-r) \] 设\(r ...
- bzoj千题计划127:bzoj1041: [HAOI2008]圆上的整点
http://www.lydsy.com/JudgeOnline/problem.php?id=1041 设 X>0 ,Y>0 X^2 + Y^2 = R^2 X^2 = R^2-Y^2 ...
- BZOJ1041 [HAOI2008]圆上的整点 【数学】
1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4631 Solved: 2087 [Submit][S ...
随机推荐
- UIImageView xib里面拉伸图片技巧
拉伸图片的时候代码里和xib里面的图片名字去掉@2x,但是原始图片文件得要xxx@2x.png The X and Y values seem to be the positions for the ...
- @noi.ac - 508@ 01背包
目录 @description@ @solution@ @accepted code@ @details@ @description@ 有一天你学了一个能解决01背包问题的算法,你决定将这个算法应用到 ...
- W3C vs IE盒模型
今年4月份的一次面试,问到盒模型,是我第一次接触到盒模型,但当时不太明白,没有说清楚,后来查了下,但一知半解. 下面分享下,我对盒模型的理解: 盒模型,也就是box-sizing,分为content- ...
- 2017年NOIP普及组复赛题解
题目涉及算法: 成绩:入门题: 图书管理员:模拟: 棋盘:最短路/广搜: 跳房子:RMQ/二分答案/DP(本人解法). 成绩 题目链接:https://www.luogu.org/problemnew ...
- hdu 1254 推箱子(嵌套搜索,bfs中有dfs)
推箱子 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- H3C HDLC协议特点
- python3在pycharm中为什么导入random模块不能用? TypeError: 'module' object is not callable
新手学python求大神指导,也用sys导入了random.py的路径,仍然不行. 刚刚排错貌似找到了问题的原因...那是因为我在pycharm中新建的python文件名就是random,所以当前目录 ...
- Tomcat停,图片名字中文显示不出来
Tomcat停,图片名字中文显示不出来 Tomcat下,图片名字中文显示不出来在tomcat的server.xml中加入URIEncoding="utf-8"<Con ...
- H3C 路由器单跳操作
- javascript中的深拷贝与浅拷贝
javascript中的深拷贝与浅拷贝 基础概念 在了解深拷贝与浅拷贝的时候需要先了解一些基础知识 核心知识点之 堆与栈 栈(stack)为自动分配的内存空间,它由系统自动释放: 堆(heap)则是动 ...