在参加评选最佳打码选手的会议,一共有n个评委,几个选手,每轮投票每个评委都会在剩下的选手中选一个人。在第一轮投票前,有m个选手可以选择;每轮投票后,只保留有最多票数的选手;当只剩下一个选手时,评选结束。
请判断无论怎样投票评选都会结束吗?
两种情况
1、当n = 1 时,无论有多少个选手m,只有一个评委无法进行投票,因此评选一定会结束。此时输出"YES"。
2、当n > 1 时,我们需要判断在每一轮投票后,剩下的选手数量是否会减少。
#include <iostream>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
int n, m;
cin >> n >> m;
if (n == 1) {
cout << "YES" << endl;
} else {
int maxPlayers = m;
while (maxPlayers > 1) {
maxPlayers = (maxPlayers + n - 2) / n;
}
if (maxPlayers == 1) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
}
return 0;
}
都会结束
def judge_evaluation(n, m):
if n >= m:
return "YES"
else:
return "NO"
# 示例输入
n, m = 3, 2
print(judge_evaluation(n, m)) # 输出为 "YES"
如果n>m且n和m互质,则无论如何都会结束
否则有可能不会结束
比如n=4,m=2,那么总是2:2的话就没法结束
如果n<=m则每人一票的话永远都无法结束
那么我哪一个没有动态分配内存的指针究竟指向了什么?
是随意指向成为了一个野指针吗?
还是指向了NULL(一般这个要设置才能默认指向NULL吧?)
求教。