解题代码(70分)
n = int(input())
pre = []
rea = []
maxi = -10000 #表示正确率
maxy = -10 #表示阈值
for i in range(n):
m,y = map(int,input().split())
pre.append(m)
rea.append(y)
for i in range(n):
s = 0
for j in range(n):
if pre[j] < pre[i]:
m = 0
else:
m = 1
if m == rea[j]:
s+=1
if s > maxi :
maxi,maxy = s,pre[i]
elif s == maxi:
if pre[i] > maxy:
maxy = pre[i]
print(maxy)
解题思路:
本题主要考查的是对阈值的分析,输入的 yi,resulti,表示第i个同学的阈值。
样例输入1
6
0 0
1 0
1 1
3 1
5 1
7 1
0 0:表示第一个同学的阈值为0,实际值为0;我们根据
这个公式,0>=0则为1,但是它的真实值为0,则判断错误
第二位同学1>0,则值为1,但真实值为0 ,判断错误
第三位同学 1>0,值为1,真实值为1,判断正确
以此类推,第四位,五位,六位同学判断都是正确的正确次数为4
错误分析
本题错误在于运行时间过长,主要是因为采用嵌套的for循环,在数据较多时,运算量过大导致超过运行时间,大家在做题的时候可以把我这个错误当作案例,尽量不要写太多嵌套的循环,会加大计算量。