题意:

求前n项的n/i  的和 只取整数部分

暴力肯定超时。。。然后 。。。现在的人真聪明。。。我真蠢

觉得还是别人的题意比较清晰

比如n=100的话,i=4时n/i等于25,i=5时n/i等于20,于是在大于20到小于等于25内的5个数字j都有n/j等于4,然后ans+=4*5

所以我们可以在小于等于根号n的范围内枚举i,ans+=n/i,然后ans+=(n/(i)-n/(i+1))*i,这样分段加起来

但是又重复的部分。。

即 令m = sqrt(n), 如果n / m == m 则n / (m+1) == m-1  所以在循环进行到最后一项 即m时 n/i - n/(i+1)等于 1 所以在执行 res += (n/i - n/(i+1))*i时(即 res += 1*m 时)多加了一个m

所以要最后判断一下 减去

例如 1、2、3、4、5、6、7、8、9、10

sqrt(10)= 3

所以 最后应该是1个10   1个5   1个3   2个2   5个1

但在循环执行到i=3 时  多加了一个3

若还不懂  具体看看代码  自己写一下

#include <iostream>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <map>
#include <set>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <cmath>
#define MOD 2018
#define LL long long
#define ULL unsigned long long
#define maxn 100009
#define Pair pair<int, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define _  ios_base::sync_with_stdio(0),cin.tie(0)
//freopen("1.txt", "r", stdin);
using namespace std;
const int LL_INF = 0x7fffffffffffffff,INF = 0x3f3f3f3f;int main()
{int T;cin>> T;int cnt = 0;while(T--){LL n, res = 0;cin>> n;LL m = sqrt(n);for(LL i=1; i<=m; i++){res += n/(double)i;res += (n/i - n/(i+1)) * i;}if(n/m == m)res -= m;printf("Case %d: %lld\n",++cnt,res);}return 0;
}

转载于:https://www.cnblogs.com/WTSRUVF/p/9184774.html

Harmonic Number (II) LightOJ - 1245 (找规律?。。。)相关推荐

  1. Harmonic Number (II) LightOJ - 1245(找规律?大数f(n)=n/1+n/2+n/3+......+n/n)

    题意:让我们求f(n)=n/1+n/2+n/3+......+n/n:同时注意n/i取整: 思路:首先我们先看数据的范围,n (1 ≤ n < 2 31),数据范围太大,如果我们按 照题目中的代 ...

  2. LightOJ1245 Harmonic Number (II) —— 规律

    题目链接:https://vjudge.net/problem/LightOJ-1245 1245 - Harmonic Number (II)     PDF (English) Statistic ...

  3. LightOJ 1245 - Harmonic Number (II)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1245 题意:仿照上面那题他想求这么个公式的数.但是递归太慢啦.让你找公式咯. ...

  4. LightOJ - 1245 Harmonic Number (II) 求同值区间的和

    题目大意:对下列代码进行优化 long long H( int n ) {     long long res = 0;     for( int i = 1; i <= n; i++ )   ...

  5. light oj -1245 - Harmonic Number (II)

    先举个例子,假如给你的数是100的话,将100/2=50;是不是就是100除100-51之间的数取整为1: 100/3=33;100除50到34之间的数为2,那么这样下去到sqrt(100);就可以求 ...

  6. Harmonic Number LightOJ - 1234(暴力分段打表 / 欧拉爷爷的O(1))

    Harmonic Number LightOJ - 1234 题意: 给你一个调和级数. f(n)=1+12+13+14+15+...+1nf(n)=1+\frac{1}{2}+\frac{1}{3} ...

  7. Harmonic Number(欧拉公式或技巧打表)LightOJ - 1234(求调和级数的和)

    题意:求f(n)=1/1+1/2+1/3+1/4-1/n (1 ≤ n ≤ 108).,精确到10-8 (原题在文末) 知识点:调和级数(即f(n))至今没有一个完全正确的公式,但欧拉给出过一个近似公 ...

  8. LeetCode 667. 优美的排列 II(找规律)

    1. 题目 给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件: ① 如果这个数组是 [a1, a2, a3, ... , an] ,那么数 ...

  9. hdu 4279 Number (找规律)

    http://acm.hdu.edu.cn/showproblem.php?pid=4279 题意: 给出a,b两个数,1<=a<=b 如果a,b不互质,且a%b != 0则说明a是b的特 ...

最新文章

  1. JVM:垃圾回收概述
  2. python基础之Day23
  3. Redis 缓存数据库
  4. Windows 10全新界面要来了:焕然一新!
  5. kerberos 下运行spark 报错 Requested user hdfs is banned
  6. 夯实数字化转型算能基石 构建洛阳银行核心云
  7. chrome导出插件
  8. 裁剪平面ClipPlane
  9. Windows域策略设置 禁止客户端修改IP地址【全域策略生效】
  10. 80X86 汇编指令符号大全
  11. spring cloud构建java版 b2b2c o2o电子商务云商平台
  12. 基于php考试系统设计与实现研究文毕业设计(论文)学生中期检查,毕业设计(论文)中期检查报告(学生填写)...
  13. Modelica学习笔记1
  14. 作业6 陪集 拉格朗日定理
  15. 惊悚游戏《寂静岭》厕所3D场景模型制作分享
  16. 「镁客·请讲」移康智能朱鹏程:做产品就要直击痛点,多余的功能只会是噱头...
  17. 如何正确理解开漏输出和推挽输出
  18. 禁止macOS 在Safari下载的ZIP文件自动解压
  19. @ControllerAdvice 用法
  20. ACdream原创群赛(11)の风神日华神专场 G - 风之国

热门文章

  1. 制作CAB自解压文件的工具——IExpress
  2. 【SSM 整合项目】图书管理系统
  3. 【MyBatis笔记】01-MyBatis入门程序
  4. springboot国际化04
  5. java项目导出可执行jar包 配置文件 及运行方法
  6. 读书笔记_打开量化投资的黑箱11
  7. 当前主流量化平台整理201705版
  8. linux scp命令 不输入远程机器的密码,scp 命令无需输入密码完成 Linux 系统间远程拷贝...
  9. (第一章)数据库的类型
  10. ES6中箭头函数解释