欧拉函数/莫比乌斯函数

  Orz iwtwiioi

  这个嘛……很明显在同一条线上的两个点一定是满足  x1*k=x2,y1*k=y2,(好吧这个表示方式有点傻逼,懂得就好了)那么这条线上的点只有第一个会被看到,即x,y互质的那一个点(如果gcd(x,y)==k>1那么肯定在它前面还有点(x/k,y/k) )

  但是马上你就会指着鼻子骂我说这特么不是胡扯么……(2,1) 和 (4,2)明明都能被看到!那是因为这里的“坐标原点”是(1,1)啊……所以坐标都减个1就好了→_→

  所以就是求 ………………看iwtwiioi的博客去吧- -b 我不会用LeTeX……

  嗯就是求:(原谅我截图跑……iwtwiioi实在太神了)

          aaarticlea/png;base64,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" alt="" />

  这样一个东西……就是对于每个x,求一共有多少个y与它互质,这不就是欧拉函数的定义么→_→

  所以可以写成

          aaarticlea/png;base64,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" alt="" />【然后再乘二(x和y交换算两组)】

  最后还有一点细节要注意:(1,1)这个点统计了两次,(1,0) 和 (0,1)这两个点没有算。

  还有一种姿势,如果是用莫比乌斯函数写的话,第一个和式还可以写成:【Orz lqybzx

          sigma{ mu[i]*(n/i)*(n/i) }  (不要吐槽我的语法……)

我的代码:(线性筛模板参见《线性筛法与积性函数》——贾志鹏)

 /**************************************************************
Problem: 2190
User: Tunix
Language: C++
Result: Accepted
Time:24 ms
Memory:1624 kb
****************************************************************/ //BZOJ 2190
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
using namespace std;
int getint(){
int v=,sign=; char ch=getchar();
while(ch<''||ch>''){ if (ch=='-') sign=-; ch=getchar();}
while(ch>=''&&ch<=''){ v=v*+ch-''; ch=getchar();}
return v*=sign;
}
/******************tamplate*********************/
const int N=;
int phi[N],prime[N];
bool check[N];
void getphi(int n){
memset(check,,sizeof check);
phi[]=;
int tot=;
F(i,,n){
if(!check[i]){
prime[tot++]=i;
phi[i]=i-;
}
rep(j,n){
if(i*prime[j]>n) break;
check[i*prime[j]]=;
if(i % prime[j]==){
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
else phi[i*prime[j]]=phi[i]*(prime[j]-);
}
}
}
int main(){
int n=getint(),ans=;
getphi(n);
F(i,,n-)
ans+=phi[i];
ans=ans*+;
printf("%d\n",ans);
return ;
}

欧拉函数

 /**************************************************************
Problem: 2190
User: Tunix
Language: C++
Result: Accepted
Time:28 ms
Memory:1624 kb
****************************************************************/ //BZOJ 2190
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
using namespace std;
int getint(){
int v=,sign=; char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') sign=-; ch=getchar();}
while(isdigit(ch)) {v=v*+ch-''; ch=getchar();}
return v*sign;
}
/*******************template********************/
const int N=;
int prime[N],mu[N];
bool check[N];
void getmu(int n){
memset(check,,sizeof check);
mu[]=;
int tot=;
F(i,,n){
if(!check[i]){
prime[tot++]=i;
mu[i]=-;
}
rep(j,tot){
if(i*prime[j]>n) break;
check[i*prime[j]]=true;
if(i%prime[j]==){
mu[i*prime[j]]=;
break;
}
else mu[i*prime[j]]=-mu[i];
}
}
}
int main(){
int n,ans=;
n=getint();
n--;
getmu(n);
F(i,,n) ans+=mu[i]*(n/i)*(n/i);
ans=ans+;
printf("%d\n",ans);
return ;
}

莫比乌斯函数

【BZOJ】【2190】【SDOI2008】仪仗队的更多相关文章

  1. BZOJ 2190: [SDOI2008]仪仗队

    2190: [SDOI2008]仪仗队 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2689  Solved: 1713[Submit][Statu ...

  2. BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )

    假设C君为(0, 0), 则右上方为(n - 1, n - 1). 一个点(x, y) 能被看到的前提是gcd(x, y) = 1, 所以 answer = ∑ phi(i) * 2 + 2 - 1 ...

  3. bzoj 2190: [SDOI2008]仪仗队 线性欧拉函数

    2190: [SDOI2008]仪仗队 Time Limit: 10 Sec  Memory Limit: 259 MB[Submit][Status][Discuss] Description 作为 ...

  4. bzoj 2190 [SDOI2008]仪仗队(欧拉函数)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2190 [题意] n*n的正方形,在(0,0)格点可以看到的格子数目. [思路] 预处理 ...

  5. 【刷题】BZOJ 2190 [SDOI2008]仪仗队

    Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是 ...

  6. [bzoj 2190][SDOI2008]仪仗队(线性筛欧拉函数)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2190 分析:就是要线性筛出欧拉函数... 直接贴代码了: memset(ans,,sizeof ...

  7. BZOJ 2190 [SDOI2008]仪仗队 ——Dirichlet积

    [题目分析] 考虑斜率为0和斜率不存在的两条线上只能看到3人. 其余的人能被看见,当且仅当gcd(x,y)=1 ,然后拿卷积算一算 发现就是欧拉函数的前缀和的二倍. 注意2的情况要特判. [代码] # ...

  8. BZOJ——2190: [SDOI2008]仪仗队

    思路: 我们将其所在的位置设为(0,0),那么如果存在一个点(x,y),且有gcd(x,y)=k(k!=1),那么点(x/k,y/k)一定会将(x,y)挡住.而如果k=1,那么点(x,y)就一定会被看 ...

  9. 2190: [SDOI2008]仪仗队(欧拉函数)

    2190: [SDOI2008]仪仗队 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 3235  Solved: 2089 Description 作 ...

  10. 【BZOJ】2190 [SDOI2008]仪仗队(欧拉函数)

    Description 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是 ...

随机推荐

  1. 本地wamp的Internal Server Error错误解决方法

    一.本地wamp下调试url重写,加入htaccess文件后提示:500 Internal Server Error...,而删除这个文件网站又可以正常访问,其实就是没有开启url重写的功能.开启一下 ...

  2. Cocos2d-x移植到WindowsPhone8移植问题-libcurl库移植问题

    在Cocos2d-x 3.x最新版本中提供了Windows Phone 8平台移植libcurl库所需要的头文件和库文件.但要在Windows Phone 8平台成功移植libcurl库还是很不容易, ...

  3. UI4_UIWebView

    // // ViewController.m // UI4_UIWebView // // Created by zhangxueming on 15/7/7. // Copyright (c) 20 ...

  4. JAVA作业-1

    编写一个程序,用户输入两个数,求出其加减乘除,并用消息框显示计算结果. import javax.swing.JOptionPane; // import class JOptionPane publ ...

  5. Typical sentences in SCI papers

       Beginning  1. In this paper, we focus on the need for   2. This paper proceeds as follow.   3. Th ...

  6. Codevs 2875 RY哥查字典

    时间限制: 1 s  空间限制: 16000 KB  题目等级 : 钻石 Diamond  题目描述 Description RY哥最近新买了一本字典,他十分高兴,因为这上面的单词都十分的和谐,他天天 ...

  7. OpenGL第15,16,17讲小结

    这三讲没有什么特别的感觉,15讲把纹理贴到3D字体上,16讲讲了雾的生成,17讲是通过以事先保存好的纹理贴图的字体来显示2D文字,这样子不用调用windows的字体,而是使用纹理中的字体.这样也在一定 ...

  8. hidden(隐藏域)

    <input type="hidden">? 这等于是隐藏值,客户端无需显示,但提交后后台能够接受,例如你放个表单验证值在里边,这样可以拒绝来源不明的表单提交.还有判断 ...

  9. jsp探针

    在网上找到一些jsp探针,收藏下. JSP探针1.jsp <%@ page contentType="text/html;charset=gb2312" %> < ...

  10. 在Linux中三种让crontab每秒执行任务的方法

    第一种方法: 1.创建脚本文件 cat phplog.sh 2.编辑脚本内容 #!/bin/bash while : ;do /home/scripts.sh 2>/dev/null & ...