HDU 4342 水数学

简介:

题意:给出一个n,需要求出第n个非完全平方数m,和前m个数的开方取下整数。

这题首先能发现 i^2 之前有 i^2-i个非完全平方数,所以只要找出相邻的一个区间里存在n就可以确定第n个数的值m。再根据m取下整找出和就可以,貌似%lld是超时的,所以我很贱的打了个表。

#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long ans[75000];
int main()
{
    int t;
    long long n;
    for(long long i=1; i<=73000; i++)
        ans[i]=i*(i-1);
    scanf("%d",&t);
    while(t--)
    {
        scanf("%lld",&n);
        long long i=1,ans1,ans2=0;
        while(i)
        {
            if(ans[i]<n&&n<=ans[i+1])
            {
                ans1=i*i+n-i*(i-1);
                break;
            }
            i++;
        }
        long long j=1;
        while(j*j<ans1)
            ans2+=(2*j-1)*(j-1),j++;
        ans2+=(j-1)*(ans1-(j-1)*(j-1)+1);
        printf("%lld %lld\n",ans1,ans2);

    }
    return 0;
}


目录
相关文章
|
8月前
蓝桥杯:2021省赛 例题:直线
蓝桥杯:2021省赛 例题:直线
31 0
|
2月前
|
存储
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
每日一题啦(● ̄(エ) ̄●)(尼克切斯定理,等差数列)
10 0
|
7月前
|
人工智能
[蓝桥杯] 数学与简单DP问题
蓝桥杯比赛中常见的还有一类数学问题,这些数学问题有的是有公式计算,有的是考察的思维逻辑。我们具体来看例题。
29 0
|
6月前
|
Java 测试技术
hdu 1229 还是A+B(水)
hdu 1229 还是A+B(水)
27 0
|
6月前
|
Java
hdu 1219(水)
hdu 1219(水)
18 0
|
6月前
hdu 2502 月之数
hdu 2502 月之数
16 0
|
9月前
|
机器学习/深度学习 算法
算法提高:组合数学| 卡特兰数的实现
卡特兰数列是组合数学中在各种计数问题中常出现的数列,其前几项为1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012…… 卡特兰数首先是由欧拉在计算对凸n边形的不同的对角三角形剖分的个数问题时得到的,即在一个凸n边形中,通过不相交于n边形内部的对角线,把n边形拆分成若干三角形,不同的拆分数用Hn表示,Hn即卡特兰数。
83 0
算法提高:组合数学| 卡特兰数的实现
|
12月前
7-293 鸡兔同笼
7-293 鸡兔同笼
63 0
(数论)蓝桥杯AcWing 1205. 买不到的数目
(数论)蓝桥杯AcWing 1205. 买不到的数目
34 0
|
uml
牛客 小乐乐学数学(扫描线+树状数组)
牛客 小乐乐学数学(扫描线+树状数组)
74 0