Anton and Fairy Tale

Anton and Fairy Tale

思路

瞎扯

一开始猜了一个假结论从第m + 1天开始,每天结束的谷物会比前一天少一个,没仔细读题。。。

正解

我们打表发现,第m天结束后剩余的谷物是\(n - m\),并且从第m + 1天开始,当天结束时剩余的谷物会比上一天的谷物少,并且满足

\(sum[m + i] - sum[m + i - 1] = i\),于是我们有了下面这个式子。

\(\frac{(1 + i) * i}{2} >= n - m\),我们就是要求这个最小满足要求的i,然后最后答案就是\(m + i\)

一种特殊情况,当\(m > n\)的时候,一定是在第n天谷物全部没有。

代码

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

ll n, m;

ll clac(ll x) {
    return (1 + x) * x / 2 < n - m;
}

int main() {
    // freopen("in.txt", "r", stdin);
    cin >> n >> m;
    if(m > n)   cout  << n << "\n";
    else {
        ll l = 0, r = 2e9;
        while(l < r) {
            ll mid = l + r >> 1;
            if(clac(mid))   l = mid + 1;
            else r = mid;
        }
        cout << l + m << endl;
    }
    return 0;
}

原文链接: https://www.cnblogs.com/lifehappiness/p/12837823.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    Anton and Fairy Tale

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/346667

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午4:02
下一篇 2023年3月2日 上午4:02

相关推荐