題意:有三種狀態分別是休息,做事件a,做事件b,兩種事件不能在同一天做,問怎麼安排可以讓休息的天數最少。每天可以做的事情可能是能做所有事情或者只能做乙個或者只能休息
其實這道題的狀態轉移的影子很明顯,當前如果可以做事情,那麼當前的最優解一定是前面異於當前選擇的最優解的最小值。
比如當前做事件a,那麼最優解就是前一天做事件b的最優解和休息的最優解的最小值。即
對於其他狀態也是乙個道理。
最後答案就是在最後一天的三個狀態裡面挑最小就行了。
其實這個題和力扣上面這個題目是乙個模子,看到我這篇部落格的人有興趣可以做一下。
)//當前狀態可以選擇0或2時,找出對應之前的最優解
if(a[i]==2
)if(a[i]==3
)}int minone=inf;
for(
int i=
0;i<=
3;i++
)//最後一天在三種狀態裡面挑最小
minone=
min(minone,dp[n]
[i])
; cout<
return0;
}
校隊排位賽 F 優先佇列
題目 看病要排隊這個是地球人都知道的常識。不過經過細心的0068的觀察,他發現了醫院裡排隊還是有講究的。0068所去的醫院有三個醫生 汗,這麼少 同時看病。而看病的人病情有輕重,所以不能根據簡單的先來先服務的原則。所以醫院對每種病情規定了10種不同的優先順序。級別為10的優先權最高,級別為1的優先權...
bupt暑假排位賽(2)
這次訓練的題目,兩道水題 卡資料型別,有好多人不能1a,我也在內 還有3道題,不是很容易。a.boj0416丁神去谷歌 一道很水的題,因為我剛開始用了sort,t了一次,後來又忘了是什麼原因re了2次 下面簡單分析一下吧,由於是要求b a的最大值,所以只需要把當前的b a與之前最大的b a比較就行,...
北郵新生排位賽2解題報告d e
時間限制 3000 ms 記憶體限制 131072 kb學弟們來了之後,學姐每天都非常高興的和學弟一起玩耍。這一天,學姐想出了這樣乙個遊戲,她畫了一棵樹,樹上共有 n個節點,現在學姐把m m n 個石子隨機放在節點上,每個節點可以放多個,每一次操作是指把每乙個節點上的所有石子都往下移動到他某乙個子節...