Home11月24 吃雞遊戲

2021-09-01 18:29:37 字數 2012 閱讀 1177

*** 吃雞成癮。為此他決定逃課吃雞!但是學校有規定,曠課到一定次數,是不給予期末考的資格的。因此 *** 決定每門課最多逃兩次。現在告訴你,乙個學期有 n 節課程,第 i節課的科目是 si​,時間為 ti​。你需要告訴 *** 這個學期他逃課吃雞的最大時間是多少。

第一行給出乙個整數n(1≤n≤10000)為該學期課程節數。接下來n行,第i+1行給出第i節課的科目si和時間ti中間用空格隔開si​由小寫字母組成1≤∣si∣≤10,1≤ti≤10000。若 si=sj​則認為第i節課和第j節課是同一門課。

輸出***該學期逃課吃雞的最大時間。

7english 2

english 1

math 3

english 3

cook 5

eatchicken 10

cook 5

可以想到使用字典,以科目作為鍵,以儲存科目時間的子列表作為值

每輸入乙個科目,如果字典中已有這門科目,就把時間放到其對應的時間列表中。如果沒有就在字典中新增此科目的對映。

最後遍歷字典中的所有時間列表,如果列表長度大於等於3,則加上最長的兩節,如果小於3,直接用sum函式求和即可

n =

int(

input()

)d =

#字典for i in

range

(n):

sub, time =

input()

.split(

)if sub not

in d:

#如果這門課不在字典中

d[sub]=[

int(time)

]else

:#這門課已經在字典中

d[sub]

int(time)

)ans =

0for i in d:

#遍歷字典

iflen

(d[i]

)>=3:

#這門課的課程數大於等於3

d[i]

.sort(

)#排序

ans += d[i][-

2]+ d[i][-

1]else

:#課程數小於3

ans +=

sum(d[i]

)print

(ans)

可以想到生成兩個列表,乙個用於存放科目(subject)的列表l,乙個用於存放時間(time)的列表m。

time列表m中建立每個科目對應的子列表。遍歷每乙個輸入的科目,如果subject列表l中已經有此科目,就把時間放到time對應的子列表中,如果沒有此科目就分別在sub列表和time列表中加入科目和時間。

最後遍歷time列表中的子列表,判斷子列表中元素是否大於等於3。如果大於等於3,排序後取最大的兩個,如果小於3,直接用sum函式。

n =

int(

input()

)l =

#用於存放科目

m =[

]#用於存放時間

for i in

range

(n):

sub, time =

input()

.split(

)if sub not

in l:

#如果這門課不在l列表中

[int

(time)])

elif sub in l:

#這門課已經在l列表中

m[l.index(sub)

]int

(time)

)ans =

0for h in m:

#遍歷每門科目的上課時間

iflen

(h)>=3:

#這門課的課程數大於等於3

h.sort(

) ans += h[-2

]+ h[-1

]else

:#課程數小於3

ans +=

sum(h)

print

(ans)

11月24日總結

ipython支援 tab 鍵自動補全列名與公共屬性。下面是部分可自動補全的屬性 in 12 df2.noqa e225,e999 df2.a df2.bool df2.abs df2.boxplot df2.add df2.c df2.add prefix df2.clip df2.add suf...

失業日記 11月24日

11月24日 晴 周二 11點多就跟april出門,今天有好幾個事情要處理,首先要去保險公司交下一年的車險。其實還要去買蔬菜和水果,家裡什麼蔬菜和水果都沒有了。最後還要在接amiee的時候去交學費,amiee學校的學費很有意思,你可以分期付款,乙個月交,甚至可以上完乙個月等家裡收到郵局送過來的賬單再...

遞迴2023年11月24日

遞迴2018年11月24日 以下內容僅供娛樂,歡迎隨時 請多指教!1 用遞迴函式求斐波那契數列的第n項 斐波那契數列從第三個數起,後乙個數等於前面兩個數之和,例如 1 1 2 3 5 8 13 21 34 include intfun int n intmain 2 猴子吃桃問題 有一群猴子,去摘了...