Codeforces Round #627 (Div. 3) E. Sleeping Schedule dp
生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #627 (Div. 3) E. Sleeping Schedule dp
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
傳送門
文章目錄
- 題意:
- 思路:
題意:
給你一天hhh小時,初始時間是000,每天可以使時間+ai+a_i+ai?或者+ai?1+a_i-1+ai??1,問最多可以讓多少天的時間在[l,r][l,r][l,r]范圍內。
思路:
算是個比較簡單的dpdpdp了,一直想貪心,沒有轉換到dpdpdp的思路,如果想到dpdpdp,那么這個題估計就直接秒了。
設f[i][j]f[i][j]f[i][j]表示到了第iii天,時間modh\bmod hmodh為jjj的情況,轉移方程也比較明顯了:f[i][j]=max(f[i?1][(j?a[i])modh],f[i?1][(j?a[i]+1)modh])+(l≤j≤r)f[i][j]=max(f[i-1][(j-a[i])\bmod h],f[i-1][(j-a[i]+1)\bmod h])+(l \le j \le r)f[i][j]=max(f[i?1][(j?a[i])modh],f[i?1][(j?a[i]+1)modh])+(l≤j≤r)
直接n2n^2n2轉移就好啦。
總結
以上是生活随笔為你收集整理的Codeforces Round #627 (Div. 3) E. Sleeping Schedule dp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P1989 无向图三元环计数 思维 +
- 下一篇: 祛痘中药喝多久能见效