其他分享
首页 > 其他分享> > UVA-11526H(n)对称性+几何意义+

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

作者:互联网

H(n)
思路:
所要求的H(n)的几何意义,就是y=n/xy=n/xy=n/x在区间[1,n]中的整数点,
由于整数点的分布具有对称性,考虑[1,√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。(难道计算机做一个乘法就这么慢吗?)
在这里插入图片描述

#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;
}
好喜欢萨摩猪 发布了52 篇原创文章 · 获赞 0 · 访问量 938 私信 关注

标签:int,res,ll,11526H,namespace,long,对称性,UVA,include
来源: https://blog.csdn.net/qq_44846324/article/details/104590915