题意:

 给出f(n,m)(m<n)的定义:大于m并且小于n的能整除m的数的个数。

F(n)为m从1至n的f(n,m)的和。

给出n,求F(n)。

思路:

就是计算n/1 +  n/2 + n/3 + ... +n/n - n的值;

然后算那个分式的和的话不能O(N),发现n不变,就随手画了个n/x的函数,如下图是y=10/x的函数图;

我们发现这个函数图像是和y=x对称的,这个是其次,然后顺着这个感觉,可以发现,我们从1枚举到sqrt(n),在1的时候10/1=10,在2的时候10/2=5,我们可以很显然的得知,在对应y的区间 (5,10] 对于10/x来说的答案都是1,然后在3的时候10/3=3,我们又能发现y的范围在区间(3,5]上的答案都是2。对于n=10这个情况,在枚举 [1 , sqrt(n)] 每次加上n/i,并且加上对应之前 ( n/(i-1) , n/i ] 的答案都是i-1 ,这样我们对于10这样正好处理了1到n所有的数。

但是如果是20的话,sqrt(20)=4,这样简单加到了4,我们发现我们对于区间的处理都是前闭后开,所以在i=4时,没有处理n/i=5的情况,所以最后还要把 (sqrt(n) , n/sqrt(n)] 这个区间里的答案都加上;然而爆long long wa了一发;

#include<bits/stdc++.h>
using namespace std; typedef long long LL; int main()
{
int T;
scanf("%d",&T);
while(T--)
{
LL n;
scanf("%lld",&n);
LL sum=0;
LL q=sqrt(n);
sum=n;
for(LL i=2;i<=q;i++)
{
sum=sum+n/i;
sum=sum+(i-1)*(n/(i-1)-n/i);
}
if(n/q>q)
{
sum=sum+q*(n/q-n/(q+1));
}
printf("%lld\n",sum-n);
}
return 0;
}

ZOJ3175【公式化函数的思想】的更多相关文章

  1. 牛客网暑期ACM多校训练营(第三场)G:Coloring Tree(函数的思想)

    之前两次遇到过函数的思想的题,所以这次很敏感就看出来了.可以参考之前的题: https://www.cnblogs.com/hua-dong/p/9291507.html Christmas is c ...

  2. CodeForces - 1005E2:Median on Segments (General Case Edition) (函数的思想)

    You are given an integer sequence a1,a2,…,ana1,a2,…,an. Find the number of pairs of indices (l,r)(l, ...

  3. jquery中ajax中post方法(多学习:洞悉原理,触类旁通)(函数封装思想)

    jquery中ajax中post方法(多学习:洞悉原理,触类旁通)(函数封装思想) 一.总结 1.多看学习视频:洞悉原理,触类旁通, 2.函数封装:$.post(URL,data,callback); ...

  4. javascript之高级函数应用思想

    1.级联函数:应用对象方法调用的连写 function A(){ this.a = ''; this.b = ''; this.c = ''; } //改造一下 A.prototype = { A.p ...

  5. C语言的抽象与函数指针--思想(转)

    一.何为抽象? 从小到大,我们接触到的抽象,最熟悉的莫过于数学了.为什么这样说呢? 比如说,在小学的时候,老师总是拿了几个苹果来引诱我们:同学们,这里有几个苹果啊?于是我们流着口水一个个地数,一个苹果 ...

  6. Python学习第十八篇——低耦合函数设计思想

    import json 2 def greet_user(filename): 3 try: 4 with open(filename) as f_obj: 5 username = json.loa ...

  7. JavaScript 函数创建思想

    //定义一个函数的步骤//1.开辟一个新的空间地址//2.把函数体里面的代码当做字符串存储到空间里面(一个函数如果只定义了,没有执行的话,这个函数没有任何意义)//3.在把我们的地址给我们的函数名fu ...

  8. Python中的函数递归思想,以及对比迭代和递归解决Fibonacci数列

    什么是递归?简单的说就是:函数自身调用自身. “普通程序员用迭代,天才程序员用递归” 虽然递归 在运行时会不断出栈压栈,调用底层的寄存器,造成空间上的占用以及时间上的缓慢, 但在一些算法上面仍然是递归 ...

  9. 如果你也会C#,那不妨了解下F#(4):了解函数及常用函数

    函数式编程其实就是按照数学上的函数运算思想来实现计算机上的运算.虽然我们不需要深入了解数学函数的知识,但应该清楚函数式编程的基础是来自于数学. 例如数学函数\(f(x) = x^2+x\),并没有指定 ...

随机推荐

  1. CRM 安装不规范,亲人两行泪

    安装CRM需要严格按照CRM部署文档的要求进行,比如设置CRM服务的服务账号一定要加入到CRM所在组织库用户里,不然会遇到下面错误.这个就是传递到SQL 的账号,在SQL那边不识别 <s:Env ...

  2. 03-树3 Tree Traversals Again(25 point(s)) 【Tree】

    03-树3 Tree Traversals Again(25 point(s)) An inorder binary tree traversal can be implemented in a no ...

  3. Vue中的计算属性和监听器(computed 与 watch)

    react中数据是单向绑定的,而vue中数据是双向绑定的.为什么? 在react中,主要是通过setState 去改变state的值:而在vue中,会自动的触发set 与get 改变属性的值. 在vu ...

  4. Hibernate 模糊查询 ' %?% ' SQL执行异常

    今天我在使用Hibernate 的SQL预编译之后注入参数的形式写了一条模糊查询语句.刚开始我是这么写的

  5. June 26,程序破解

    1.android程序破解练习初级 方法一: 文件名:KeygenMe#1.apk工具:ApktoolGui v2.0 Final 先用ApktoolGui v2.0 Final反编译成java通过查 ...

  6. ubuntu16.04 跑Apollo Demo

    1.安装docker(参考网址:https://docs.docker.com/install/linux/docker-ce/ubuntu/) Uninstall old versions Olde ...

  7. Java并发之synchronized

    Java多线程同步关键词是常用的多线程同步手段.它可以修饰静态类方法,实例方法,或代码块.修饰static静态方法时是对整个类加锁. 一.实现原理 在JVM中对象内存分三块区域,对象头.实例数据.对齐 ...

  8. 杂项:MIS

    ylbtech-杂项:MIS 1.返回顶部 1. 管理信息系统(Management Information System,简称MIS)是一个以人为主导,利用计算机硬件.软件.网络通信设备以及其他办公 ...

  9. tabbar

    1 tabbar不显示的问题: 命名在app.json中配置了tabbar但是不显示可能的问题: app.json中的pages中第一个路径没有在tabbar中设置 原因:app.json中配置的pa ...

  10. StackOverFlow页面不正常,因为CDN被墙了

    190.93.247.58 cdn.sstatic.net 198.252.206.140 sstatic.net http://stackoverflow.com/