poj 3090 欧拉函数简单应用
来源:互联网 发布:java线程和进程区别 编辑:程序博客网 时间:2024/06/05 09:20
找出n * n的方格中有多少不同的直线斜率;
分成三个部分,首先是斜率为1和两个坐标轴,然后是被三条直线切成的两个部分,这个的话求出一部分*2,一部分假设斜率为x/y(x < y),那么肯定是最简式,即x 和 y互质,就是欧拉函数的应用了;
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<vector>#include<algorithm>#include<map>using namespace std;const int maxn = 1000 + 10;#define INF 0x3f3f3f3f#define clr(x,y) memset(x,y,sizeof x )typedef long long ll;#define eps 10e-10const ll Mod = 1000000007;typedef pair<ll, ll> P;int euler[maxn];ll a[maxn];void Init(){ euler[1] = 1; for(int i = 2; i < maxn; i ++) euler[i] = i; for(int i = 2; i < maxn; i ++) if(euler[i] == i) for(int j = i ; j < maxn; j += i) euler[j] = euler[j] /i *(i - 1); a[0] = 0; a[1] = 0; for(int i = 2; i < maxn; i ++) a[i] = a[i - 1] + euler[i];// cout << a[1] << " " << a[2] << endl;}int main(){ int n; Init(); int Tcase; scanf("%d",&Tcase); for(int ii = 1; ii <= Tcase; ii ++)// while( ~ scanf("%d",&n) && n) { scanf("%d",&n); printf("%d %d %d\n",ii,n,a[n] * 2 + 3); } return 0;}
阅读全文
0 0
- poj 3090 欧拉函数简单应用
- poj 3090 (欧拉函数应用)
- 欧拉函数简单应用
- POJ 3090 Visible Lattice Points 欧拉函数的应用
- poj 2480 (欧拉函数应用)
- poj 3090 欧拉函数
- POJ 3090 欧拉函数
- 欧拉函数的简单应用
- HDU2588 GCD 欧拉函数简单应用
- POJ-20407Relatives/NYOJ-333mdd的烦恼,欧拉函数简单应用,模板A
- POJ 2773 Happy 2006 欧拉函数的应用
- poj 2773 Happy 2006(欧拉函数应用)
- 欧拉函数的证明以及应用(附POJ例题)
- POJ 2407 Relatives(欧拉函数的应用)
- 欧拉函数应用
- 欧拉函数应用
- POJ 3090 欧拉函数递推
- poj 3090 (欧拉函数,找规律)
- windows系统上安装tensorflow
- HDU
- 查询数据库的索引信息
- java 设计模式之单例模式
- Siri真的要离开我们了?
- poj 3090 欧拉函数简单应用
- H3C常用命令-3
- ListView使用itemType遇到的问题
- 根据xsl模板及xml数据文件生成pdf(文字内容复制不乱码)
- mybatis动态sql中的trim标签的使用
- hudson maven svn 搭建+自动部署
- iOS 禁止侧滑手势返回上级
- 用一个例子来理解c++中的重载
- Android---网络编程之简易新闻客户端