bzoj4459 [Jsoi2013]丢番图
2017-11-08 22:57
281 查看
题目
蜜汁“费马大定理”,不过好像没什么关系。
1/a+1/b=1/n,这样当然是没有用的,我们来变换一下(没有公式编辑(其实太懒))。
(a+b)/ab=n
n(a+b)=ab
ab-n(a+b)+n^2=n^2
(a-n)*(b-n)=n^2
到现在,就很显然了,求n^2的因数个数,考虑a,b其实等价,还要除以2,(向上取整,因为平方数)。
之前被一个强行卡常网站卡了一下这个,本机0.83s,交上去硬是跑了2s+,T了。
不过,还是比较好做的,sqrt(n)分解n的质因数,n^2就是在每个指数上乘了个2。
蜜汁“费马大定理”,不过好像没什么关系。
1/a+1/b=1/n,这样当然是没有用的,我们来变换一下(没有公式编辑(其实太懒))。
(a+b)/ab=n
n(a+b)=ab
ab-n(a+b)+n^2=n^2
(a-n)*(b-n)=n^2
到现在,就很显然了,求n^2的因数个数,考虑a,b其实等价,还要除以2,(向上取整,因为平方数)。
之前被一个强行卡常网站卡了一下这个,本机0.83s,交上去硬是跑了2s+,T了。
不过,还是比较好做的,sqrt(n)分解n的质因数,n^2就是在每个指数上乘了个2。
#include<bits/stdc++.h> using namespace std; long long n,ans,cnt; int main() { //freopen("in.txt","r",stdin); cin>>n;ans=1; for(long long i=2;i*i<=n;i++) { if(n%i)continue; for(cnt=0;n%i==0;n/=i)cnt++; ans*=cnt<<1|1; } if(n!=1)ans*=3; cout<<(ans+1)/2; return 0; }
相关文章推荐
- 【BZOJ 4459】【JSOI 2013】丢番图
- [数学] BZOJ 4459 [Jsoi2013]丢番图
- BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数
- bzoj 4459: [Jsoi2013]丢番图 数学
- bzoj 4459: [Jsoi2013]丢番图 -- 数学
- BZOJ 4459 [Jsoi2013] 丢番图
- 【bzoj4459】JSOI2013丢番图
- BZOJ 4459: [Jsoi2013]丢番图
- 【bzoj4459】[Jsoi2013]丢番图 分解质因数
- bzoj 4460 : [Jsoi2013]广告计划
- bzoj 4480: [Jsoi2013]快乐的jyy
- BZOJ 4466 [Jsoi2013]超立方体【模拟
- BZOJ4479 : [Jsoi2013]吃货jyy
- bzoj 4464 : [Jsoi2013]旅行时的困惑
- BZOJ 4460 [Jsoi2013]广告计划 ——Bitset 后缀自动机
- bzoj 4465: [Jsoi2013]游戏中的学问
- bzoj 4466 : [Jsoi2013]超立方体
- bzoj4480: [Jsoi2013]快乐的jyy
- BZOJ4466 [Jsoi2013]超立方体
- bzoj 4479: [Jsoi2013]吃货jyy 欧拉回路+状压dp