【暑期每日一题】洛谷 P1749 [入门赛 #19] 分饼干 II
题目链接:P1749 [入门赛 #19] 分饼干 II - 洛谷
题目描述
老师有 N 块饼干,要分给 k 名小朋友。
每名小朋友至少拿到一块饼干,老师想让每名小朋友拿到的饼干数量都不一样多,请问老师能否实现这个目标。
输入格式
本题单个测试点内有多组测试数据。
输入共 T+1 行。
输入第一行为一个整数 T,代表测试数据组数。
接下来 T 行,每行两个整数,分别为 N,k。
输出格式
输出共 T 行,依次对应 T 组测试数据。如果该组测试数据
- 可以实现,输出
Yes
。 - 无法实现,输出
No
。
输入输出样例
输入 #1
1
1 1
输出 #1
Yes
输入 #2
1
5 3
输出 #2
No
说明/提示
数据规模与约定
- 对于 50% 的测试数据 1 ≤ k ≤ 1000,1 ≤ N ≤ 10^6。
- 对于 100% 的测试数据,1 ≤ k,N ≤ 10^9。
- 1 ≤ T ≤ 10^5
思路
只需要判断n是否大于等于1+2+3+...+k即可,如果满足,则输出Yes;否则,输出No.
AC code:
#include<iostream>
#include<algorithm>using namespace std;typedef long long ll;ll sum(ll a)
{return (1+a)*a/2;
}int main()
{int tt;cin>>tt;int n,k;while(tt --){cin>>n>>k;if(sum(k) <= n){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}} return 0;
}