官方题解|挑食的小码君
2024-07-15 08:49:41
发布于:广东
37阅读
0回复
0点赞
题目解析
可以将问题转化为:“在 中,有没有一种食物的美味度是 个食物中最高的(允许并列)?”
对于这个问题我们可以通过以下流程解决:
- 找出 种食物中的最高美味度。(假设该值为 )。
- 对于 ,判断是否存在 。
- 如果有一个或多个这样的 ,则答案为
Yes
;否则,答案为No
。
可以用 for
语句和 if
语句来编写。
注意数组下标的范围。此外,注意不要多次输出 Yes
,或在 Yes
后输出 No
。
这一点,对于 C++
程序可以在找到满足条件的 之后使用 return 0
直接退出程序;对于 Python
程序可以使用 exit(0)
直接退出程序。
AC代码
C++
AC代码:
#include <bits/stdc++.h>
int main() {
int n, k;
std::cin >> n >> k;
int a[100], b[100];
for (int i = 0; i < n; ++i)
std::cin >> a[i];
for (int i = 0; i < k; ++i)
std::cin >> b[i];
int maxv = 0;
for (int i = 0; i < n; ++i)
if (a[i] > maxv)
maxv = a[i];
for (int i = 0; i < k; ++i)
if (a[b[i] - 1] == maxv) {
std::cout << "Yes" << '\n';
return 0;
}
std::cout << "No" << '\n';
return 0;
}
Python
AC代码:
n, k = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
maxv = max(a)
for i in b:
if a[i - 1] == maxv:
print("Yes")
exit(0)
print("No")
这里空空如也
有帮助,赞一个