改進後的**成功率在90%
#!/usr/bin/env python
# -*-coding:utf-8 -*-
'''@file : 1032.py
@time : 2020/04/08 17:02:03
@author : schiller xu
@version : 1.0
@contact : [email protected]
@desc : none
'''n=
int(
input()
)school=
grade=
result=
for i in
range
(n):
data=
input()
.split(
)if data[0]
in school:
p=school.index(data[0]
) grade[p]
+=int
(data[1]
)else:0
])int(data[1]
))m=grade[0]
index=
0for i in
range(1
,len
(grade)):
if grade[i]
>m:
index=i
m=grade[i]
print
(school[index]
,end=
' ')
print
(m)
後來我試著用字典儲存學校編號和成績,仍然是二維資料,**執行仍是超時。
改進思路如下:
學校編號從1開始且連續,用列表儲存成績,用下標作為學校編號,資料從二維變為一維;
使用sys.stdin.readline代替input;
成績範圍[0,100],提前生成成績字元到整型對映的字典,成績通過字典的get函式獲取。
其中1完成後,成功的概率大概在50%左右(沒試過),3個措施的改進能力逐次降低。
改進後的**:
#!/usr/bin/env python
# -*-coding:utf-8 -*-
'''@file : 1032-1.py
@time : 2020/07/17 15:53:28
@author : schiller xu
@version : 1.0
@desc : none
'''import sys
n=int
(input()
)d=[0
]*(n+1
)score_dict =
for _ in
range
(n):
school,score=sys.stdin.readline(
).split(
) school=
int(school)
d[school]
+=score_dict.get(score)
max_d=
max(d)
#i=d.index(max_d)
#print(i,max_d)
print
(d.index(max_d)
,max_d)
1032 挖掘機技術哪家強
為了用事實說明挖掘機技術到底哪家強,pat組織了一場挖掘機技能大賽。現請你根據比賽結果統計出技術最強的那個學校。輸入格式 輸入在第1行給出不超過105的正整數n,即參賽人數。隨後n行,每行給出一位參賽者的資訊和成績,包括其所代表的學校的編號 從1開始連續編號 及其比賽成績 百分制 中間以空格分隔。輸...
1032 挖掘機技術哪家強
為了用事實說明挖掘機技術到底哪家強,pat組織了一場挖掘機技能大賽。現請你根據比賽結果統計出技術最強的那個學校。輸入格式 輸入在第1行給出不超過105的正整數n,即參賽人數。隨後n行,每行給出一位參賽者的資訊和成績,包括其所代表的學校的編號 從1開始連續編號 及其比賽成績 百分制 中間以空格分隔。輸...
1032 挖掘機技術哪家強
參考了 的 好吧其實基本一模一樣捂臉哭 為了用事實說明挖掘機技術到底哪家強,pat組織了一場挖掘機技能大賽。現請你根據比賽結果統計出技術最強的那個學校。輸入格式 輸入在第1行給出不超過105的正整數n,即參賽人數。隨後n行,每行給出一位參賽者的資訊和成績,包括其所代表的學校的編號 從1開始連續編號 ...