题解:P11204 「Cfz Round 9」Lone
分析
在本题中,我们需要将一根长度为
显而易见,对于任意三根木棍
但是值得注意的是,由于所有小木棍的长度都是正整数,所以,我总结了出以下几个要点:
- 最小的三根小木棍的长度需要大于半根棍子的长度。也就是说,若将最小的三根小木棍的长度记为
x ,那么3x 必须小于等于m 。(这点很重要)- 将木棍分成
n 根,且每根木棍长度为正整数,因此m 必须至少等于n 。- 为了满足三角形不等式,除了保证总长度
m 和小木棍数n 之外,还需注意小木棍的长度分配。
思路
- 检查
m 是否大于等于n (每根小木棍长度至少为 1 )。 - 其次,计算
m 是否能被合理分配,以满足任意三根小木棍都能构成三角形,即m 需要满足m \geq 2n (这样可以使得能分成长度较小的木棍)。 - 如果以上条件满足,则输出
Yes,否则输出No。
Code
#include <bits/stdc++.h>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
long long n, m;
cin >> n >> m;
if (m >= n && m >= 2 * n) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
return 0;
}