中石油训练赛 - sciorz画画(区间dp)
題目描述
眾所周知,sciorz會畫畫。某天,sciorz畫了一個凸多邊形,這個多邊形的每個頂點都有一個權值a[i]。sciorz覺得這個凸多邊形不夠美麗,于是他決定在n個點之間連線,最終用n-3條不相交的線將這個凸n邊形分割成n-2個三角形。sciorz認為,一個三角形的美麗值是三個頂點權值的乘積,凸多邊形的美麗值是其內部三角形的美麗值的和。sciorz想找到一種分割方案,使得這個凸多邊形的美麗值最大。sciorz忙著刷難題,所以他隨手就把這個簽到題扔給你,希望你幫sciorz算出最大的美麗值。
輸入
第一行一個t,表示有t組樣例。
每組樣例的第一行是一個n,表示多邊形的邊數。
第二行n個數,第i個數表示多邊形第i個頂點的權值a[i],按逆時針順序給出。
輸出
對于每組樣例,輸出一行。格式為"Case #x: y",x為樣例編號,y為答案。
樣例輸入 Copy
2 3 1 2 3 4 1 2 3 4樣例輸出 Copy
Case #1: 6 Case #2: 32提示
第一個樣例只有一個三角形,所以不用分割,答案是1*2*3=6。
第二個三角形,最優分割方案是分割為1 2 4和2 3 4兩個三角形,答案是1*2*4+2*3*4=32
1<=t<=100
3<=n<=100
1<=a[i]<=100
題目分析:比賽的時候以為是個貪心題,于是就去切了,WA了幾發后意識到事情并不是這么簡單,但自己也沒什么辦法,就放棄了,賽后補題的時候知道了這原來是個區間dp,因為給出的點權是按照凸包的逆時針給出的,也就是可以用區間表示,且數據范圍較小,加上題目要求最優解,也就可以用區間dp來解決了,設dp[ i ][ j ]為以點 i 為起點,點 j 為終點,圍成的凸多邊形中劃分三角形得到的最優解,那么不難發現如果選取中間點 k 后,整個凸多邊形分為了三個部分:
既然這樣出現了三角形,顯然同樣可以從 len = 3 時開始遞推,最后dp[ 1 ][ n ]就是答案了
代碼:
?
?
總結
以上是生活随笔為你收集整理的中石油训练赛 - sciorz画画(区间dp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HYSBZ - 1208 宠物收养所(S
- 下一篇: 中石油训练赛 - 关于我转生变成史莱姆这