首页 > 其他 > 详细

A.Deadline

时间:2020-01-16 10:47:08      阅读:84      评论:0      收藏:0      [点我收藏+]

题意:寻找一个数x,使得\(x + \lceil \frac{d}{x + 1} \rceil\)和n相等或者小于n,如果存在这样一个数x,就输出YES,否则输出NO,或者当d <= n时,输出YES。

分析:\(x + \lceil \frac{d}{x + 1} \rceil\) 可以化成\(\lceil x + \frac {d}{x + 1} \rceil\),因为x是整数,向上取整,依然等于x,所以可以合并到里面,然后,我们再进一步化公式,
\(\lceil {(x + 1)} + \frac{d}{x + 1} - 1 \rceil\) \(\geq \lceil 2\sqrt{d} - 1 \rceil\) (基本不等式),那么我们只需要判断该最小值\(2\sqrt{d}-1\)是否小于等于n,如果不存在,那么输出YES,否则输出NO。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

int main()
{
    int t;
    cin >> t;

    while (t--)
    {
        int n, d;
        cin >> n >> d;

        int t = static_cast<int>(ceil(2 * sqrt(d) - 1));

        if (t <= n)
            puts("YES");
        else
            puts("NO");

        
    }
    return 0;
}


A.Deadline

原文:https://www.cnblogs.com/pixel-Teee/p/12199936.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!