zoukankan      html  css  js  c++  java
  • Harmonic Number LightOJ

    题意:

    求调和级数,但n很大啦。。

    解析:

    分段打表  每间隔50存储一个数,在计算时  只需要找到离输入的n最近的那个数 以它为起点 开始计算即可

    emm。。。补充一下调和级数的运算公式

      r为常数,r=0.57721566490153286060651209(r就是欧拉常数)。

    看一下这位的博客:https://www.cnblogs.com/weiyuan/p/5737273.html

    #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 100000000
    #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;
    double ch[maxn/50+10];
    int main()
    {
        int T, cnt = 1;
        double sum = 0;
        ch[0] = 0;
        for(int i=1; i<=maxn; i++)
        {
            sum += 1/(double)i;
            if(i % 50 == 0)
                ch[cnt++] = sum;
        }
        int kase = 0;
        cin>> T;
        while(T--)
        {
            int n;
            cin>> n;
            double m = ch[n/50];
            for(int i=n/50*50+1; i<=n; i++)
                m += 1/(double)i;
            printf("Case %d: %.10f
    ",++kase,m);    
    
        }
        
    
        return 0;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    Uva 11806 拉拉队 二进制+容斥原理 经典!
    CSU CHESS
    hdu 4049 Tourism Planning 状态压缩dp
    HDOJ 4661: Message Passing(找递推公式+逆元)
    HDU
    hdu4647(思路啊!)
    spoj 370. Ones and zeros(搜索+同余剪枝+链表存数(可能越界LL))
    URAL
    URAL
    hdu4614 (二分线段树)
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9189761.html
Copyright © 2011-2022 走看看