首先这是一个数学题
题目分析
1.鸽子可以进行k次偶数与奇数次攻击,我们先把都看成最小奇数与偶数的攻击,最小的奇数是1,最小的偶数是2,如果最小的攻击之和都不能击败boss,那么就输出NO,这是一个大的判断
2.其次,如果最小的攻击之和能大于boss的血量值,那么继续判断,因为奇数的偶数倍一定是偶数,奇数的奇数倍一定是奇数,偶数可以不用管,所以我们只需判断boss的血量值是否与k是同一类型的数,如果是,那么就可以击败boss,如果不行,那么就不可以
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll t; ll n, m; scanf("%d", &t); while (t--) { scanf("%lld%lld", &n, &m); if (m * 3 <= n) { int boolean = m % 2; int boolean1 = n % 2; if (boolean == boolean1) printf("Yes\n"); else printf("No\n"); } else { printf("No\n"); } } return 0; }