區間dp板子題 noi1995 石子合併

2022-08-18 23:55:58 字數 716 閱讀 5371

非常經典的區間dp模板

對於每乙個大於二的區間 我們顯然都可以將它拆分成兩個子串行 那麼分別計算對於每個取最優值即可

#pragma gcc optimize("o2")

#include#include#include#include#include#include#include#include#include#include#include#define n 100001

typedef long long ll;

const int inf=0x3fffffff;

const int maxn=2017;

using namespace std;

inline int read()

while(ch<='9'&&ch>='0')

return f*x;

}int dp[maxn][maxn],a[n],sum[n];

int main()

for(int len=1;len<=n;len++)

{ for(int l=1,r;(r=l+len)<=n;l++)

{ dp[l][r]=inf;

for(int k=l;k另外強烈安利這篇講區間dp的  全網最棒!強推一波!

順便我居然才開始學區間dp(我太弱啦!

NOI 1995 合併石子 區間DP

在乙個圓形操場的四周擺放n堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。試設計出1個演算法,計算出將n堆石子合併成1堆的最小得分和最大得分.輸入格式 資料的第1行試正整數n,1 n 100,表示有n堆石子.第2行有n個數,分別...

NOI1995 石子合併

在乙個園形操場的四周擺放n堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。試設計出1個演算法,計算出將n堆石子合併成1堆的最小得分和最大得分.圓的話就用2 n 1,即只有n種情況 include using namespace ...

NOI 1995 石子合併

合併石子的加強版 不過這可是95年的noi的題,準確說應該是合併石子是它的削弱版吧。環的處理就是在鏈的後面再來一遍鏈,然後列舉一下起點終點,就和合併石子一樣了。include include include include include define inf 0x3f3f3f3f using na...