博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 2005: [Noi2010]能量采集
阅读量:7174 次
发布时间:2019-06-29

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

1 #include
2 #include
3 #define ll long long 4 using namespace std; 5 ll f[100009],n,m,ans; 6 int main() 7 { 8 scanf("%d%d",&n,&m); 9 if(n>m)10 swap(n,m);11 for(int i=n;i;i--)12 {13 f[i]=(n/i)*(m/i);14 for(int j=2;j*i<=n;j++)15 f[i]-=f[i*j];16 ans+=f[i]*(2*i-1);17 }18 printf("%lld\n",ans);19 return 0;20 }

有个结论,(x,y)线段上的端点个数等于gcd(x,y),证明就自己yy一下吧,然后这个题就变成了gcd的和,设f[i]为gcd为i的点对有多少个,可用程序中方法nlogn求出。

转载于:https://www.cnblogs.com/xydddd/p/5293931.html

你可能感兴趣的文章
Allegro PCB Design GXL (legacy) 设置十字大光标
查看>>
数据结构--图的定义和存储结构
查看>>
[C#参考]委托机制
查看>>
linux常用命令
查看>>
自然杂志上的影评
查看>>
SQL Server 存储过程
查看>>
Appium自动化测试1 - 安装部署
查看>>
广州.NET微软技术俱乐部微信群各位技术大牛的blog
查看>>
《Redis设计与实现》之第九章:数据库
查看>>
10月10日学习内容整理:socketserver模块,ftp作业讲解
查看>>
P1352 没有上司的舞会
查看>>
Bzoj 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 深搜,bitset
查看>>
关于《淘宝技术这十年》
查看>>
c#事件机制
查看>>
冒泡排序
查看>>
Sublime一键预览
查看>>
C#使用log4net记录日志
查看>>
halcon
查看>>
servlet过滤器
查看>>
maven向本地仓库导入jar包(处理官网没有的jar包)
查看>>