bzoj1939: [Croatian2010] Zuma
来源:互联网 发布:淘宝买家怎么修改评价 编辑:程序博客网 时间:2024/06/06 07:15
传送门
看英文题解的辣。上图:
翻译过来是:
f[i][j][k]表示消除第i个到第j个珠子,且第i个珠子前面有k个同色珠子的最优解。
有三种转移:
1.插入一个:f[i][j][k]=f[i][j][k-1]+1
2.k=K-1时在前面插入之后消掉:f[i][j][k]=f[i+1][j][0];
3.消除中间一段后和前面合并。要求两段同色:
f[i][j][k]=f[i+1][l-1][0]+f[l][j]k+1
剩下的我就不翻译了
#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int f[105][105][5],a[105],n,k;int dp(int l,int r,int x){ if (l>r) return 0; if (l==r) return k-1-x; if (f[l][r][x]!=-1) return f[l][r][x]; int tmp=1e9; if (x<k-1) tmp=dp(l,r,x+1)+1; else tmp=dp(l+1,r,0); for (int i=l+1;i<=r;i++) if (a[i]==a[l]) tmp=min(tmp,dp(l+1,i-1,0)+dp(i,r,min(k-1,x+1))); return f[l][r][x]=tmp;}int main(){ scanf("%d%d",&n,&k); for (int i=1;i<=n;i++) scanf("%d",&a[i]); memset(f,-1,sizeof(f)); printf("%d\n",dp(1,n,0));}
阅读全文
0 0
- bzoj1939: [Croatian2010] Zuma
- BZOJ 1939 [Croatian2010] Zuma
- [DP] BZOJ 1939 [Croatian2010] Zuma
- Zuma
- 祖玛(Zuma)
- Zuma Game
- Zuma HDU
- bnu1299 ZUMA C语言版
- bzoj1032: [JSOI2007]祖码Zuma
- Tsinghua MOOC 祖玛(Zuma)
- 数据结构1-2Zuma
- Tsinghua OJ:祖玛(Zuma)
- Codeforces 607 D Zuma
- codeforces 607B. Zuma
- CodeForces-607B Zuma
- JSOI2007 祖码Zuma
- Codeforces_607B:Zuma(区间DP)
- bzoj1032: [JSOI2007]祖码Zuma
- Ubuntu安装jdk
- 数据库调优教程——优化sql语句
- hdu 2012 素数判定
- HDOJ 5920 Ugly Problem 【模拟】
- Python3教程Web开发实战梳理-day9(编写API)
- bzoj1939: [Croatian2010] Zuma
- [NOIP模拟赛]玻璃杯
- 逻辑卷管理【Ubuntu-shell】
- C语言第一章
- hdu_4284 (Floyd求最短路+dfs遍历)
- Spark中map与flatMap
- C语言——行列倒置函数实现
- 运行Java程序的参数
- 模式识别算法中英文对照