python ccfcsp 201909-2 小明種蘋果(續)

題目有點長,耐心點看。

思路:對每棵樹,有一個總數記錄,有一個狀態記錄(是否發生蘋果掉落),所以,total列表用來記錄所有蘋果樹的蘋果總數,isdrop記錄所有樹的狀態

在輸入每棵樹的數據時,對於a_ij進行判斷,小於等於0進行更新total列表,否則,就和total中的當前項進行比較,大於最新數據表示存在掉落情況,對應的isdrop更新爲True,並且對total的當前項進行賦值操作

對於相鄰連續三棵,用類似於(x+1)%n的形式解決,主要注意x的循環範圍,要覆蓋所有情況,長度一定是等於n地。

(100)

total=list()
n=eval(input())
isdrop=[False]*n#True表示有蘋果掉落,False表示沒有蘋果掉落
for i in range(n):
    line=[int(it) for it in input().rstrip().split()]
    total.append(line[1])
    for j in range(2,line[0]+1):
        if line[j]<=0:
            total[i]+=line[j]
        else:
            if total[i]>line[j]:
                isdrop[i]=True
            total[i]=line[j]
e=0
for k in range(2,n+2):#對於是個圈的循環,要注意range裏的長度還是要等於n,否則循環會少
    if isdrop[(k-1)%n] and isdrop[(k-2)%n] and isdrop[k%n]:
        e+=1
print(str(sum(total))+' '+str(isdrop.count(True))+' '+str(e))
發佈了22 篇原創文章 · 獲贊 12 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章