【BZOJ2005】【codevs1937】能量采集,数论练习之二维公约数求和
传送门1
传送门2
其实phi可以前缀和处理,(n/d)*(m/d)只有(n^0.5+m^0.5)个取值,然而我这里是O(n)的偏暴力流……
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
using namespace std;
int phi[100010],prime[100010];
bool pd[100010];
long long n,m;
long long ans;
main()
{scanf("%d%d",&n,&m);if (n>m) swap(n,m);for (int i=1;i<=n;i++){if (!pd[i]) phi[i]=i-1,prime[++prime[0]]=i;for (int j=1;j<=prime[0];j++){if (prime[j]*i>n) break;pd[i*prime[j]]=1;if (i%prime[j]==0)phi[i*prime[j]]=phi[i]*prime[j];else phi[i*prime[j]]=phi[i]*phi[prime[j]];}}//欧拉筛求φans=n*m;for (int i=1;i<=n;i++)ans+=2*(n/i)*(m/i)*phi[i];printf("%lld",ans);
}
【BZOJ2005】【codevs1937】能量采集,数论练习之二维公约数求和相关推荐
- js-练习题-循环打印二维数组-二维数组求和-个人所得税
循环打印二维数组 <script>var arr=new Array();for(i=0;i<5;i++){arr[i]=new Array();for(j=0;j<8;j++ ...
- python二维数组求和_Python如何对二维数组求和
Python对二维数组求和的方法:首先定义好一个二维数组:然后使用map函数对数组里每一个元素进行sum操作即可对二维数组求和. 关于二维数组求和的几种方法: a = [[1,2],[3,4],[5, ...
- php求二维数组,php 二维数组求和
php 二维数组求和 关注:117 答案:1 mip版 解决时间 2021-01-31 01:57 提问者情癌晚期 2021-01-30 01:47 Array ( [194] => Arr ...
- bzoj2005: [Noi2010]能量采集
不知道什么算法. 首先求一颗植物(i,j)与能量采集器的连线上有几颗植物. 答案是(gcd(i,j)-1),设i'= i/gcd(i,j),j'=j/gcd(i,j). 则这几颗植物是(i'k,j'k ...
- BZOJ 2005: [Noi2010]能量采集( 数论 + 容斥原理 )
一个点(x, y)的能量损失为 (gcd(x, y) - 1) * 2 + 1 = gcd(x, y) * 2 - 1. 设g(i)为 gcd(x, y) = i ( 1 <= x <= ...
- 二维数组求和 团队开发
题目:返回一个二维整数数组中最大联通子数组的和. 要求: 输入一个二维整形数组,数组里有正数也有负数. 求所有子数组的和的最大值.要求时间复杂度为O(n). 开发方式:团队开发 主要思路:二维连通数组 ...
- [2019.1.14]BZOJ2005 [Noi2010]能量采集
以下设\(n\ge m\). 首先,一个点\((x,y)\)到\((0,0)\)的路径上经过的点的数量(不包括首尾)为\(gcd(x,y)-1\). 所以它的能量损耗为\(2\times gcd(x, ...
- BZOJ2005: [Noi2010]能量采集 莫比乌斯反演的另一种方法——nlogn筛
分析:http://www.cnblogs.com/huhuuu/archive/2011/11/25/2263803.html 注:从这个题收获了两点 1,第一象限(x,y)到(0,0)的线段上整点 ...
- BZOJ2005 NOI2010 能量采集 欧拉函数
题意:求$\sum\limits_{i = 1}^N {\sum\limits_{j = 1}^M {f(i,j)} } $,其中f(i,j)=(0,0)与(i,j)连线上点的数量 题解: 如果一个点 ...
最新文章
- 自定义Spark Partitioner提升es-hadoop Bulk效率——续
- ruquireJS入门
- LCD MIPI DSI时钟计算
- vue - blog开发学习4
- mediumtext 长度_InnoDB表行长度超限问题的处理和思考
- go 基准测试 找不到函数_基于Golang做测试
- 关于Video Renderer和Overlay Mixer
- html静态页面引用其他页面,Shtml完美解决静态页面内部调用其他页面(非Iframe、Object、Js方法)...
- 职工工作量c语言调试分析,c语言职工工作量统计
- static在内存层面的作用_static关键字总结
- 11. SpringMVC拦截器(资源和权限管理)
- 用英伟达 DIGITS 进行图像分割
- Server responded “Algorithm negotiation failed“错误解决方法
- Docker 极简入门指南
- mysql80004005错误_常见的80004005错误及其解决方法
- quot;紫陀螺quot;网友感触转载系列之…
- 图像处理——分水岭算法
- (完美解决)应用程序无法正常启动(0xc000007b),请单击确定关闭应用程序的解决方案
- Omi官方插件系列 - omi-transform介绍
- 走进区块链企业 | 区块链应用商店 BeeStore
热门文章
- 在Spring Cloud中集成和使用CSE快速实现商业产品
- linux 物理内存用完了_12张图解Linux内存管理,程序员内功修炼,看过都说懂了!...
- SpringIOC容器和Bean的配置
- 红橙Darren视频笔记 从AIDL Demo分析Android源码走向
- PyCharm将制表符转换为空格并显示的配置方法
- poj 2253 最短路变形——最大边的最小值
- leetcode59题:滑动窗口的最大值(用双端队列实现)
- Latex中文字超过文本宽度时解决方法
- java面向对象的理解_java胜于C语言,却又静态面向对象,简单?
- android添加快捷按钮,Android中创建快捷方式代码实例