• CF785C (1600)


    https://codeforces.com/problemset/problem/785/C?f0a28=1

    题目翻译

    在第一天开始时,有n个谷物容量的谷仓是满的。然后,每天(从第一天开始)都会发生以下情况。
    m粒谷物被送到谷仓。如果有m个谷物不适合放进谷仓,谷仓就会变满,不适合的谷物就会被带回来(在这个问题上,我们可以假设不适合放进谷仓的谷物没有被考虑在内)。
    麻雀来吃谷物。第i天有i只麻雀来,即第一天有一只麻雀来,第二天有两只麻雀来,以此类推。每只麻雀吃一粒粮食。如果谷仓是空的,麻雀就什么也吃不到。
    安东已经厌倦了听达尼克描述每只麻雀吃谷仓里的粮食。安东不知道这个童话故事什么时候结束,所以他要求你确定,到哪一天谷仓会第一次变空。请帮助安东,写一个程序来确定那一天的数字。
    输入
    输入的唯一一行包含两个整数n和m(1≤n,m≤1018)--谷仓的容量和每天带来的谷物的数量。


    输出
    输出一个整数--谷仓第一次变空的那一天的数字。天数从1开始编号。

    例子
    输入复制
    5 2
    outputCopy
    4
    输入复制
    8 1
    输出拷贝
    5
    备注
    在第一个例子中,谷仓的容量是五谷,每天带来两谷。下面的情况发生了。
    在第一天的开始,谷物被送到谷仓。谷仓是满的,所以没有发生什么。
    第一天结束时,一只麻雀来了,吃了一粒粮食,所以还剩下5-1=4粒粮食。
    第二天开始时,有两粒粮食被送来。谷仓满了,有一粒粮食装不下了。
    第二天结束时,两只麻雀来了。5-2=3粒粮食。
    第三天开始时,有两粒粮食被送来。谷仓又满了。
    第三天结束时,有三只麻雀来吃谷物。5-3=2粒粮食。
    第四天开始时,谷物又被送来。剩下2+2=4粒粮食。
    第四天结束时,有四只麻雀来吃谷子。4-4=0谷粒。谷仓是空的。
    所以答案是4,因为在第四天结束时,谷仓已经空了。

     思路:

    分类讨论:

    1. 当 n <= m 时,只有第 n 天才能刚好吃完。否则都会补满。

    2. 当 n > m 时,第 m 天后谷仓将不能补满,即开始减少。可以得出第 m+1 天减少 1 ,第          m+2 天减少 2 ,第 m+3 天减少 3 ...... 而实际应该减少的即为 n - m,用等差数列求和即        可,但从第1天开始枚举会超时,所以根据等差数列求和公式可以从sqrt(2*(n - m))开始        枚举。

    代码:

    1. #include
    2. #include
    3. #include
    4. using namespace std;
    5. #define endl '\n'
    6. #define int long long
    7. const int N = 3e5 + 10, mod = 1e9 + 7;
    8. int a[N],s[N];
    9. void solve()
    10. {
    11. int n,m;
    12. cin >> n >> m;
    13. if(n <= m)
    14. {
    15. cout << n << endl;return;
    16. }
    17. int t = 2 * (n-m);
    18. for(int i = sqrt(t); ;i ++)
    19. {
    20. if((i+1) * i >= t)
    21. {
    22. cout << i+m << endl; return;
    23. }
    24. }
    25. }
    26. signed main()
    27. {
    28. ios::sync_with_stdio(false);
    29. cin.tie(nullptr);
    30. cout.tie(0);
    31. int T = 1;
    32. //cin >> T;
    33. while(T --)
    34. {
    35. solve();
    36. }
    37. return 0;
    38. }

     

  • 相关阅读:
    开心公寓房屋出租管理系统的设计与实现(系统源码+技术文档+论文)
    kernel heap bypass smep,smap && 劫持modprobe_path
    Kotlin协程:MutableSharedFlow的实现原理
    视觉SLAM十四讲(高翔版本),ch1-2章节部分笔记
    什么因素引起了肾结石呢?
    排序不等式算法
    高并发之线程池
    数据挖掘与------跨行业数据挖掘标准流程:CRISP-DM
    制作一个模板三
    python+nodejs+java校园网络自主报修系统Vue项目
  • 原文地址:https://blog.csdn.net/qq_62783783/article/details/128000098