有n項工作,每項工作分別在s[i]時間開始,在t[i]時間結束。對於每項工作,你都可以選擇參與與否。如果選擇了參與,那麼自始至終都必須全程參與。此外,參與工作的時間段不能重疊(即使是開始的瞬間和結束的瞬間的重疊也是不允許的)。求最多能參與多少項工作。
比如,當n=5,s=[1,2,4,6,8],t=[3,5,7,9,10]時,應該輸出3。
三行,第一行乙個數n;
第二行n個數,空格隔開,表示s[i];
第三行n個數,空格隔開,表示t[i]。
最多能參與工作的項數。
其餘要求同首題。
n,s,t=
int(
input()
),list
(map
(int
,input()
.split(
' ')))
,list
(map
(int
,input()
.split(
' ')))
st=sorted([
[s[i]
,t[i]
]for i in
range
(n)]
,key=
lambda x:x[1]
)def
main
(i=0
,ans=
0,endtime=-1
):return ans if i==n else main(i+
1,ans+
1,st[i][1
])if endtime]else main(i+
1,ans,endtime)
print
(main())
'''ans=0
endtime=-1
for i in range(n):
if endtime
Python 「最短」挑戰(12 18)
有1元 5元 10元 50元 100元 500元的硬幣各若干枚,用乙個六元陣列c表示。現在要用這些硬幣來支付k元,最少需要多少枚硬幣?兩行,第一行六個數,空格隔開,表示硬幣的數量 第二行乙個數k,表示目標值。最少需要的硬幣枚數,如果無法湊成,輸出0。其餘要求同首題。v,c,k 1 5,10 50,1...
Python 「最短」挑戰(12 19)
有乙個長為n的數列a。請求出這個序列中最長的上公升序列的長度。上公升序列指的是對於任意的i,j都滿足a i 兩行,第一行乙個數n,表示數列長度 第二行n個數,空格隔開,表示數列裡的數。最長上公升序列長度。其餘要求同首題。n,a int input list map int input split p...
Python 「最短」挑戰(12 21)
有一種特殊的蜜蜂,每一年乙隻雌蜂生乙隻雄蜂,乙隻雄蜂生乙隻雌蜂和雄蜂,然後這兩隻蜜蜂就會死去。現在出現了乙隻神奇的雌蜂,它每年都可以生乙隻雄蜂而且不會死去。請你求出,在只有這乙隻雌蜂的初始情況下,過了n年以後雌蜂和雄蜂各有多少。例如,n等於3的時候,有3只雌蜂4只雄蜂。每一行都有乙個數n 0 如果n...