「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 ...
随机推荐
- chrome谷歌浏览器怎么清除指定网站cookie
https://jingyan.baidu.com/article/fa4125aced30cc28ac709230.html 在使用电脑的情况下,由于到部分网站的cookie的问题导致的部分功能失效 ...
- OpenStack组件系列☞Keystone
Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证.服务规则和服务令牌功能的模块.用户访问资源需要验证用户的身份与权限,服务执行操作 ...
- @bzoj - 4379@ [POI2015] Modernizacja autostrady
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一棵无根树,边权都是1,请去掉一条边并加上一条新边,定义直径 ...
- php解压缩
1.zip文件 2.rar文件 3.php调用linux指令进行解压缩 解压7z文件: 注:Windows下的文件编码和LINUX不一样,中文系统为GB,LINUX为UTF-8编码,这种情况下,中文名 ...
- nio FileChannel中文乱码问题
最近用nio读取文件时,英文正常,读取中文时会出现乱码,经查可以用Charset类来解决: 代码如下: package com.example.demo; import java.io.FileNot ...
- 运行项目npm run dev时报错: ~Error: Cannot find module 'webpack-cli/bin/config-yargs', 原因是
webpack@3.X运行项目npm run dev时报错: ~Error: Cannot find module 'webpack-cli/bin/config-yargs' 我的原因是: web ...
- PHP实现微信小程序人脸识别刷脸登录功能
首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片 然后我们在后台写刷脸登陆的接口login我们要把拍照获取的照片存储到服务器 public function login(){ // ...
- gSOAP 使用
1. wsdl2h 生成服务定义头文件 wsdl2h -o calc.h http://www.genivia.com/calc.wsdl 2. 从服务定义头文件calc.h生成客户端代码 soapc ...
- mac 安装 adb
安装命令 brew cask install android-platform-tools 测试安装情况 adb devices 设备打开开发者模式 略 查看log并过滤出设备id adb logca ...
- H3C 根据子网掩码计算子网数