luogu P2508 [HAOI2008]圆上的整点
推荐去bzoj看个视频了解一下 不要妄想视频直接告诉你题解 但是视频告诉了你后面要用的东西
首先我们要求的是\(x^2+y^2=n^2(x,y\in Z)\)的\((x,y)\)对数,可以转化成\(x^2+y^2=n^2(x>0,y\ge0,x,y\in Z)\)的\((x,y)\)对数\(*4\)
注意到共轭复数之积\((a+bi)(a-bi)=a^2+b^2\),所以改为求\((x+yi)(x-yi)=n^2(x>0,y\ge0,x,y\in Z)\)的方案数
把\(n^2\)分解质因数,得到\(n^2=p_1^{k_1}*p_2^{k_2}...\),有个结论,是除以4剩余1的质数可以拆成两个共轭复数的形式,于是我们就可以继续分解,得到若干对共轭复数和一些质数.现在要分成一对共轭复数,所以所有的质数要平均分在两边,剩下的复数,如果\((x+yi)\)在左边,\((x-yi)\)就要在右边,反之同理.所以答案就是\(4*(\prod (k_i+1)*[p_i\ mod\ 4=1])\)
吗?
不然呢
这里请结合代码思考一下
#include<bits/stdc++.h>
#define LL long long
#define il inline
#define re register
#define db double
#define eps (1e-5)
using namespace std;
const int N=500+10,M=5000+10;
il LL rd()
{
LL x=0,w=1;char ch=0;
while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return x*w;
}
int n;
LL ans=1;
int main()
{
n=rd();
int m=sqrt(n);
for(int i=2;i<=m&&n>1;i++)
if(n%i==0)
{
int cn=0;
while(n%i==0) ++cn,n/=i;
if(i%4==1) ans*=cn<<1|1;
}
if(n>1&&n%4==1) ans*=3;
printf("%lld\n",ans<<2);
return 0;
}
推荐阅读xzz_233's sol
luogu P2508 [HAOI2008]圆上的整点的更多相关文章
- 2021.12.06 P2508 [HAOI2008]圆上的整点(数论+ π )
2021.12.06 P2508 [HAOI2008]圆上的整点(数论+ \(\pi\) ) https://www.luogu.com.cn/problem/P2508 题意: 求一个给定的圆 \( ...
- 洛谷P2508 [HAOI2008]圆上的整点
题目描述 求一个给定的圆$ (x^2+y^2=r^2) $,在圆周上有多少个点的坐标是整数. 输入格式 \(r\) 输出格式 整点个数 输入输出样例 输入 4 输出 4 说明/提示 \(n\le 20 ...
- P2508 [HAOI2008]圆上的整点
题目描述 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. 输入输出格式 输入格式: r 输出格式: 整点个数 输入输出样例 输入样例#1: 复制 4 输出样例#1: 复制 ...
- [bzoj1041] [洛谷P2508] [HAOI2008] 圆上的整点
Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 只有一个正整数n,n<=2000 000 000 Output 整点个数 Samp ...
- 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 ...
随机推荐
- Bootstrap洼地
前面的话 这是一个轻量.灵活的组件,它能延伸至整个浏览器视口来展示网站上的关键内容.本文将详细介绍Bootstrap洼地 概述 洼地(Well)样式的效果和巨幕jumbotron样式类似,不同点是we ...
- BZOJ2553[BeiJing2011]禁忌——AC自动机+概率DP+矩阵乘法
题目描述 Magic Land上的人们总是提起那个传说:他们的祖先John在那个东方岛屿帮助Koishi与其姐姐Satori最终战平.而后,Koishi恢复了读心的能力…… 如今,在John已经成为传 ...
- BZOJ5372 PKUSC2018神仙的游戏(NTT)
首先有一个想法,翻转串后直接卷积看有没有0匹配上1.但这是必要而不充分的因为在原串和翻转串中?不能同时取两个值. 先有一些结论: 如果s中长度为len的前缀是border,那么其存在|s|-len的循 ...
- P2707 Facer帮父亲
题目背景 Facer可是一个孝顺的孩纸呦 题目描述 Facer的父亲是一名经理,现在总是垂头丧气的. Facer问父亲,怎么啦?父亲说,公司出了点问题啊. 公司管理着N个风景点,每个风景点都有不少人来 ...
- day6 笔记
元祖 只读不可取的列表,数据不能被修改 a = (20,30) 格式同列表,只是[] 换成了 () ps:元祖在创建的时候,最好在最后的元素后面加一个逗号,比如a = ( 20,) 用法类似于列表:切 ...
- MT【225】两平行直线夹曲线
已知函数$f(x)=x^3-3ax,(x\in(0,1))$若关于$x$的不等式$|f(x)|\le \dfrac{1}{4}$恒成立,求实数$a=$____ 方法一:代数法,转化成恒成立问题,略.方 ...
- es某个分片受损或卡在INITIALIZING状态时解决办法
参考这篇文章 # OK last warning: you will probably lose data. Don't do this if you can't risk that. CLUSTER ...
- 使用debootstrap制作debian-jessie系统docker镜像
先看一下Docker官网提示:In general, you'll want to start with a working machine that is running the distribut ...
- 【POJ2248】加法链 idfs
首先,在这道题的搜索框架中,在对每一位进行枚举时,复杂度为\(O(n^2)\),但是可知最优解序列的长度不会太长. 其次,采用 \(bool\) 类型返回值时,是一种存在性搜索,并不一定能够得到最优解 ...
- Apache Shiro 用户信息保存在session方案
描述 在使用shiro的时候,经常会有一种需求: 把登录成功后的用户对象存放到session中,方面其他地方调用.存放到session这个步骤到底应该在哪里去做,有几个地方比较合适: 调用 Subje ...