石子合并问题--直线版 HRBUST - 1818 解题报告

开头一句话,寒假一时爽,开学火葬场。

石子合并问题,经典的区间DP问题。

可能有人不理解什么事区间DP,这里引进一篇非常不错的博客区间DP详解。

看完之后你会惊讶的发现啊,原来卡死自己的题竟然只是一道模板题。

自己寒假做的跪着也要疯狂学完。

下面给出AC代码:


#include 
using namespace std;
typedef long long ll;
const int maxn=1000+100;
const int INF=0x3f3f3f3f;
int dpi[maxn][maxn],dpx[maxn][maxn];
int sum[maxn];


int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {

        memset(dpi,INF,sizeof(dpi));
        memset(dpx,-1,sizeof(dpx));
        sum[0]=0;
        for(int i=1; i<=n; i++)
        {
            scanf("%d",&sum[i]);
            sum[i]=sum[i-1]+sum[i];
            dpx[i][i]=0;
            dpi[i][i]=0;
        }

        for(int len=2; len<=n; len++)
        {
            for(int i=1; i<=n; i++)
            {
                int j=i+len-1;
                if(j>n) continue;
                for(int k=i; k

 

你可能感兴趣的:(ACM补题集,动态规划)