博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 10820 Send a Table
阅读量:5088 次
发布时间:2019-06-13

本文共 587 字,大约阅读时间需要 1 分钟。

 

题意:

有一张表 f[x][y],共x*y个数

现在要删去所有的 f[x*k][y*k] ,k>1

最后还剩多少个数

 

题意转化:有多少个二元组(x,y)满足 gcd(x,y)=1

若x<y,则 f[][y]=phi(y)

所以 ans= (2* Σ phi(y))+1   y∈[2,n]

加的1为(1,1)

线性筛出欧拉函数求和即可

#include
#define N 50001using namespace std;bool v[N];int phi[N],cnt,p[N];int main(){ for(int i=2;i
=N) break; v[i*p[j]]=true; if(i%p[j]) phi[i*p[j]]=(p[j]-1)*phi[i]; else { phi[i*p[j]]=phi[i]*p[j]; break; } } } for(int i=2;i

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7391115.html

你可能感兴趣的文章
Zookeeper常用命令 (转)
查看>>
Java程序IP v6与IP v4的设置
查看>>
RUP(Rational Unified Process),统一软件开发过程
查看>>
数据库链路创建方法
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>
重构代码 —— 函数即变量(Replace temp with Query)
查看>>
Bootstrap栅格学习
查看>>
程序员的数学
查看>>
聚合与组合
查看>>
jQuery如何获得select选中的值?input单选radio选中的值
查看>>
设计模式 之 享元模式
查看>>
如何理解汉诺塔
查看>>
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
15 FFT及其框图实现
查看>>
Linux基本操作
查看>>
osg ifc ifccolumn
查看>>
C++ STL partial_sort
查看>>
3.0.35 platform 设备资源和数据
查看>>
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>