bzoj 2190 欧拉函数线性筛
来源:互联网 发布:python怎么用for循环 编辑:程序博客网 时间:2024/06/06 04:09
根据图显然如果我们沿着对角线把它切开,新形成的这两部分是对称,每一部分的答案为sigma(phi(i)) (1<=i<=n-1)
那么整体的答案ans=2*sigma(phi(i))+1 (对角线上只能看到一个点(1,1)) (1<=i<=n-1)
线性筛1~n-1的欧拉函数即可
var n :longint; ans :int64; phi,prime :array[0..40010] of longint; vis :array[0..40010] of boolean; i :longint;procedure pre_do;var i,j,tt:longint;begin phi[1]:=1; tt:=0; for i:=2 to n do begin if not vis[i] then begin inc(tt); phi[i]:=i-1; prime[tt]:=i; end; // for j:=1 to tt do if (prime[j]*i>n) then break else begin vis[i*prime[j]]:=true; if i mod prime[j]=0 then begin phi[i*prime[j]]:=phi[i]*prime[j]; break; end else phi[i*prime[j]]:=phi[i]*phi[prime[j]]; end; end; //end;begin read(n); pre_do; ans:=0; for i:=1 to n-1 do inc(ans,int64(phi[i])); ans:=(ans<<1)+1; writeln(ans);end.——by Eirlys
0 0
- bzoj 2190 欧拉函数线性筛
- BZOJ-2190 仪仗队 数论+欧拉函数(线性筛)
- [bzoj 2190] [SDOI2008]仪仗队:欧拉函数,线性筛
- BZOJ 2818 Gcd (线性筛+欧拉函数)
- [BZOJ 2818] Gcd 线性筛+欧拉函数前缀和
- bzoj 3288 欧拉函数线性筛法
- BZOJ 2190 欧拉函数
- 欧拉函数线性筛法详解
- 欧拉函数 线性筛法
- 欧拉筛(线性筛)& 欧拉函数
- [笔记]: 欧拉函数线性筛法
- 线性筛素数and欧拉函数
- 线性筛法与欧拉函数
- 【欧拉函数+线性筛】bzoj2818: Gcd
- bzoj2190 仪仗队【欧拉函数+线性筛】
- BZOJ-2190-仪仗队-SDOI2008-欧拉函数
- BZOJ 2190:仪仗队【欧拉函数】
- BZoj 2190: [SDOI2008]仪仗队【欧拉函数】
- 如何添加UI动画效果
- 手机微信群控源码二次开发
- 最后的编译
- 安装各网络测试工具
- Toast
- bzoj 2190 欧拉函数线性筛
- SSL 数字证书的标准、编码以及文件扩展名
- SpringMVC 3.1下返回json时中文显示乱码问题的解决方案
- 行为树(Behavior Tree)实践(1)– 基本概念
- 小程序第三方平台初体验(下)|微专辑
- 每日三题-Day3-A(HDU 1176 免费馅饼 数塔)
- error:can't find command 'linux'解决办法
- mac 编程上遇到dyld: lazy symbol binding failed: Symbol not found的解决方案
- java中HashMap嵌套HashMap嵌套ArrayList案例