UVA-11526H(n)对称性+几何意义+

H(n)
思路:
所要求的H(n)的几何意义,就是y=n/xy=n/xy=n/x在区间[1,n]中的整数点,
由于整数点的分布具有对称性,考虑[1,√n]的整数点即可。

UVA-11526H(n)对称性+几何意义+

#include<stdio.h>
#include<iostream>
#include<cmath>
#include<math.h>
#include<string>
#include<string.h>
#include<algorithm>
#define ll long long
using namespace std;
int main(){
    int t;
    cin>>t;
    while (t--)
    {
        int n;
        scanf("%d",&n);
        ll res = 0;
        int m = sqrt(n);
        for(int i=1;i<=m;i++)
        {
            res += n/i;
        }
        
        res=res*2 -m*m;
        printf("%lld\n",res);
    }
    return 0;
}

下面是TLE代码,仅仅是遍历循环的时候把条件改成了for(int i=1;i*i<=n;i++)
就TLE。(难道计算机做一个乘法就这么慢吗?)
UVA-11526H(n)对称性+几何意义+

#include<stdio.h>
#include<iostream>
#include<cmath>
#include<math.h>
#include<string>
#include<string.h>
#include<algorithm>
#define ll long long
using namespace std;
int main(){
    int t;
    cin>>t;
    while (t--)
    {
        int n;
        scanf("%d",&n);
        ll res = 0;
        for(int i=1;i*i<=n;i++)
        {
            res += n/i;
        }
        int m = sqrt(n);
        res=res*2 -m*m;
        printf("%lld\n",res);
    }
    return 0;
}
UVA-11526H(n)对称性+几何意义+UVA-11526H(n)对称性+几何意义+ 好喜欢萨摩猪 发布了52 篇原创文章 · 获赞 0 · 访问量 938 私信 关注
上一篇:UVA - 10118 Free Candies


下一篇:Uva 11584 Partitioning by Palindromes