Buy Low, Buy Lower (buylow)
動(dòng)態(tài)規(guī)劃,b[i]=max{b[j]}+1 (1<=j<i且a[j]>a[i])
然后根據(jù)加法原則,統(tǒng)計(jì)i之前的長度為b[i]-1的個(gè)數(shù)相加之和就是b[i]的個(gè)數(shù)。為了避免重復(fù)的情況要增加一個(gè)數(shù)組記錄比i大的等于a[i]的數(shù),如果沒有就標(biāo)記為0.這樣,我們在處理相加時(shí),對于每一個(gè)j,只需保證next[j]==0 || next[j]>i就可以,意思就是在當(dāng)前j ~ i-1的區(qū)間中沒有價(jià)格等于j的元素了,這樣,總是處理區(qū)間中重復(fù)元素的最后一個(gè)。
The Primes (prime3)
打表很重要,打出各種各樣的表來,先曬出符合條件的素?cái)?shù),然后做出規(guī)定特定位的表來,比如指定第1位和第3位的素?cái)?shù)表。枚舉的順序很重要,先枚舉對角線,然后枚舉最上面一行,然后中間兩豎行,然后最左邊一豎行,然后中間豎行。剩下的可以根據(jù)和相等計(jì)算出來再判定是否符合素?cái)?shù)條件,要注意第一行和第一列不能存在0,最后一列和最后一行必須是0,1,3,9其中一個(gè)。最后排序。
Street Race (race3)
首先枚舉除0和n以外的各個(gè)點(diǎn),去掉離開這個(gè)點(diǎn)的邊,從起點(diǎn)bfs搜索,如果到達(dá)不了終點(diǎn),則此點(diǎn)是“不可避免路口”。由于是“不可避免路口”,則去掉離開這點(diǎn)的邊后不能從剛剛bfs已路過的點(diǎn)達(dá)到剛才bfs過程中未達(dá)到的點(diǎn),所以如果從該點(diǎn)開始搜索,如果搜索不到之前bfs已達(dá)到的點(diǎn),就說明此點(diǎn)為“中間路口”。
Letter Game (lgame)
枚舉。之前先排除一部分單詞以加快速度。