p1749 题解

· · 题解

想要满足 k 个小朋友,每个小朋友的饼干数都不同,那么最低满足要求的分配方式就是:从 小朋友 1 到小朋友 k,分配的饼干数量依次为:12,...,k-1k。即最低满足要求的饼干总数为 (k+1) * k/2 , 公差为 1 等差数列求和嘛。

而只要饼干总数 n 大于最低满足要求的饼干数,那么说明能够分配。多出来的饼干,都给最后一个小朋友就行。

最后上代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,k;
    int t;
    cin>>t;
    while(t--){
        cin>>n>>k;
        if(n>=((k+1)*k)/2) cout<<"Yes\n";
        else cout<<"No\n";  
    }

    return 0;
}