[DP] BZOJ 1939 [Croatian2010] Zuma

理性愉悦终于完结了 接下来不能再颓了 先把做的题补一下

题意 就是祖玛~
还是直接上官方题解吧 对于这种状态设计玄妙的DP真是一窍不通啊

这里写图片描述
这里写图片描述

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
using namespace std;

const int N=105;

int f[N][N][5];
int n,a[N],K;

inline int dp(int l,int r,int pre){
  if (l>r) return 0;
  if (l==r) return K-1-pre;
  if (f[l][r][pre]!=-1) return f[l][r][pre];
  int ret=1<<30;
  if (pre<K-1) ret=dp(l,r,pre+1)+1;
  if (pre==K-1) ret=dp(l+1,r,0);
  for (int i=l+1;i<=r;i++){
    if (a[i]!=a[l]) continue;
    ret=min(ret,dp(l+1,i-1,0)+dp(i,r,min(K-1,pre+1)));
  }
  return f[l][r][pre]=ret;
}

#define read(x) scanf("%d",&(x))
int main(){
  freopen("t.in","r",stdin);
  freopen("t.out","w",stdout);
  read(n); read(K);
  for (int i=1;i<=n;i++) read(a[i]);
  memset(f,-1,sizeof(f));
  printf("%d\n",dp(1,n,0));
  return 0;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许随意转载。 https://blog.csdn.net/u014609452/article/details/63267943
个人分类: DP
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭