A. Deadline (不等式、分块整除)

朱雀 2021-07-16 20:22 490阅读 0赞

题目

分块整除⌈x+d/(x+1)​⌉=⌊x+(d+x)/(x+1)​⌋=1+⌊x+(d−1)/(x+1)​⌋

Code:

  1. #include<iostream>
  2. #include<cmath>
  3. using namespace std;
  4. typedef long long ll;
  5. const int Max = 1e6 + 5;
  6. const int Mod = 1e9 + 7;
  7. int main()
  8. {
  9. int t;cin >> t;
  10. while (t--)
  11. {
  12. int n, d;cin >> n >> d;
  13. int f = 0;
  14. for (int l = 1, r;l <= d;l=r+1)
  15. {
  16. r = d /(d/l);
  17. if (l + (d-1)/ l <= n)
  18. {
  19. f = 1;break;
  20. }
  21. }
  22. if (f)cout << "YES" << endl;
  23. else cout << "NO" << endl;
  24. }
  25. }

不等式
在这里插入图片描述
参考博客https://www.cnblogs.com/pixel-Teee/p/12199936.html

只需判断2*sqrt(d)-1是否<=n即可

发表评论

表情:
评论列表 (有 0 条评论,490人围观)

还没有评论,来说两句吧...

相关阅读

    相关 分块

      晚上脑子涨涨的,就总结一下最近写的分块入门9题吧。以下全是个人浅薄理解。   分块,一般就是把一组数据分成sqrt(n)块,然后根据题目要求,对其进行维护。基本要写的就是