Sol

数学.

跟圆上的整点一样...TA写了个积性函数的算法...以后再说吧...

\(x^2+3y^2=r^2\)

\(3y^2=r^2-x^2\)

\(3y^2=(r-x)(r+x)\)

\(y^2=\frac{1}{3}(r-x)(r+x)\)

\(d=(r-x)(r+x)\)

\(r-x=3du^2,r+x=dv^2\) 这里 \(r-x\) 和 \(r+x\) 并没有什么区别.

\(2r=d(3u^2+v^2)\)

枚举 \(d\) 和 \(u\)

感觉复杂度是\(O(n^{\frac{3}{4}})\)

但是可以跑最大数据的说.

Code

  1. /**************************************************************
  2. Problem: 4544
  3. User: BeiYu
  4. Language: C++
  5. Result: Accepted
  6. Time:8568 ms
  7. Memory:1300 kb
  8. ****************************************************************/
  9.  
  10. #include<cstdio>
  11. #include<cmath>
  12. #include<algorithm>
  13. #include<vector>
  14. #include<utility>
  15. #include<iostream>
  16. using namespace std;
  17.  
  18. typedef long long LL;
  19. #define debug(a) cout<<#a<<"="<<a<<" "
  20. #define mpr(a,b) make_pair(a,b)
  21.  
  22. LL T,r,n,ans;
  23.  
  24. inline LL in(LL x=0,char ch=getchar()){ while(ch>'9'||ch<'0') ch=getchar();
  25. while(ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x; }
  26.  
  27. vector<pair<LL,LL> > p;
  28.  
  29. LL calc(LL d){
  30. LL res=0,m=n/d;
  31. // cout<<"*************"<<endl;
  32. // debug(m),debug(d);cout<<endl;
  33. for(LL u=1,v;u*u*3<=m;u++){
  34. v=sqrt(m-3*u*u+0.5);
  35. // debug(u),debug(v),debug(3*v*v+u*u),cout<<endl;
  36. // if(u>v) break;
  37. if(v*v+u*u*3==m&&__gcd(v*v,u*u*3)==1) res++;
  38. // cout<<"get!",debug(d*u*u*3),debug(d*v*v),debug(d*u*u*3+d*v*v)<<endl;
  39. // p.push_back(mpr(d*u*u*3,d*v*v));
  40. }return res;
  41. }
  42. int main(){
  43. // freopen("in.in","r",stdin);
  44. for(T=in();T--;){
  45. r=in(),n=r<<1,ans=0;
  46. for(LL d=1;d*d<=n;d++) if(n%d==0){
  47. if(d*d==n) ans+=calc(d);
  48. else ans+=calc(d)+calc(n/d);
  49. }
  50. cout<<ans*4+2<<endl;
  51. // sort(p.begin(),p.end());
  52. // for(int i=0;i<p.size();i++) cout<<p[i].first<<" "<<p[i].second<<endl;
  53. }
  54. return 0;
  55. }

  

BZOJ 4544: 椭圆上的整点的更多相关文章

  1. BZOJ 1041 圆上的整点

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1041 题意:求圆x^2+y^2=r^2上的整点. 思路:由于对称性,我们只需要计算第一象 ...

  2. [BZOJ]1045 圆上的整点(HAOI2008)

    数学题第二弹! Description 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. Input 一个正整数r. Output 整点个数. Sample Input 4 ...

  3. bzoj 1041 圆上的整点 分类: Brush Mode 2014-11-11 20:15 80人阅读 评论(0) 收藏

    这里先只考虑x,y都大于0的情况 如果x^2+y^2=r^2,则(r-x)(r+x)=y*y 令d=gcd(r-x,r+x),r-x=d*u^2,r+x=d*v^2,显然有gcd(u,v)=1且u&l ...

  4. BZOJ 1041 圆上的整点 数学

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1041 题目大意:求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整 ...

  5. BZOJ4544 椭圆上的整点(数论)

    https://www.cnblogs.com/Gloid/p/9538413.html 基本思路没有太大差别.得到2n=d(a2+3b2),其中d=gcd(n-x,n+x),n-x==a2& ...

  6. bzoj4544 椭圆上的整点

    我会所有推理..... Q1:真的这么暴力的统计答案? Q2:蜜汁统计答案.... Q3:为什么不考虑3在不同的位置的情况

  7. BZOJ 1041: [HAOI2008]圆上的整点

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3621  Solved: 1605[Submit][Sta ...

  8. bzoj 1041: [HAOI2008]圆上的整点 数学

    1041: [HAOI2008]圆上的整点 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...

  9. bzoj 1041: [HAOI2008]圆上的整点 本原勾股數組

    1041: [HAOI2008]圆上的整点 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2027  Solved: 853[Submit][Stat ...

随机推荐

  1. matlab 中txt文件(含字符及数值)处理

    matlab 中txt文件(含字符及数值)处理 (2008-08-02 09:45:12) 转载▼ 标签: 杂谈 分类: matlab及C学习 Matlab文件操作及读txt文件ZZ 2008-07- ...

  2. UDP SOCKET网络通信 C#

    接收端 using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Thread ...

  3. NumberFormat类

    NumberFormat表示数字的格式化类,即可以按照本地的风格习惯进行数字的显示. NumberFormat是一个抽象类,和MessageFormat类一样,都是Format类的子类,本类在使用时可 ...

  4. JavaScript学习笔记——对象基础

    javascript对象基础 一.名词解释: 1.基于对象 一切皆对象,以对象的概念来编程. 2.面向对象编程(oop Object oriented programming) A.对象 就是人们要研 ...

  5. Window 中安装python多版本环境

    由于python 3 已是目前稳定,且是将来版本版本.新学者可以直接从python3入手学习.但是目前还有很多企业级应用使用的是python 2,可能还得要维护.所以,我们在本地windows中可以安 ...

  6. Django笔记-post与get方法相关出错记录

    1.刚刚调试一个注册的程序,blog.views.register里用了return HttpResponse方法返回了一个注册页面 register.html,后者用了method = " ...

  7. Django笔记-字符编码相关问题整理

    1.添加中文注释后编译出错,提示:Non-ASCII   解决方法: 在Python脚本文件的第一行或第二行添加一句:      #coding:gbk或#coding:utf-8或##-*- cod ...

  8. cookie和session的对比

    1.存放的位置     cookie存在客户端的临时文件夹     session:存在服务器的内存中,一个session域对象为一个用户浏览器服务. 2.安全性   cookie是以明文方式存放在客 ...

  9. Python开发【第六篇】:模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  10. MYSQL双主故障解决实例。

    根据报错得知,获取到的主库文件格式错误. 一.锁住主从正常的库 Mysql> flush tables with read lock; 锁表 unlock tables; 解锁 SHOW MAS ...