吉诺斯在手机上玩祖玛的游戏。在这个游戏中,刚开始有n个石头排成一排,第i个石头的颜色是ci。游戏的目标是尽可能快的把所有石头都消掉。

每一秒钟,吉诺斯可以选择一段连续的子段,并且这个子段是回文,然后把它消去,剩下的石头会向中间靠近,把之前消去的石头的空隙补上。按照这样的规则,最少要几次把n个石头都消去。

样例解释:

先把4 4消去,然后把1 2 3 2 1一起消去。

收起

 

输入

单组测试数据。
第一行输入一个整数 n (1≤n≤500) ,表示石头的数目。
第二行有n个整数,第i个数字表示ci (1≤ci≤n) 。

输出

输出一行,表示答案。

输入样例

7
1 4 4 2 3 2 1

输出样例

2

区间dp。对于一个区间[l,r],选择次数最小的情况可以选定一个k,用dp[l][k]+dp[k][r]来更新,如果s[l]==s[r]那么dp[l+1][r-1]也要参与更新。

代码:
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <algorithm>
#define inf 0x3f3f3f3f
using namespace std;
int s[];
int dp[][];
int get(int l,int r) {
if(l > r) return ;
if(dp[l][r]) return dp[l][r];
dp[l][r] = inf;
for(int i = l;i < r;i ++) {
dp[l][r] = min(dp[l][r],get(l,i) + get(i + ,r));
}
if(s[l] == s[r]) dp[l][r] = min(dp[l][r],get(l + ,r - ));
return dp[l][r];
}
int main() {
int n;
scanf("%d",&n);
for(int i = ;i < n;i ++) {
scanf("%d",&s[i]);
dp[i][i] = ;
}
printf("%d",get(,n - ));
return ;
}
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int s[];
int dp[][]; int main() {
int n;
scanf("%d",&n);
for(int i = ;i < n;i ++) {
scanf("%d",&s[i]);
dp[i][i] = ;
if(i) dp[i - ][i] = - (s[i] == s[i - ]);
}
for(int i = ;i < n;i ++) {
for(int j = ;j + i < n;j ++) {
int d = j + i;
dp[j][d] = ((s[j] == s[d]) ? dp[j + ][d - ] : i + );
for(int k = j;k < d;k ++) {
dp[j][d] = min(dp[j][d],dp[j][k] + dp[k + ][d]);
}
}
}
printf("%d",dp[][n - ]);
return ;
}

51nod 1720 祖玛的更多相关文章

  1. 【51Nod 1244】莫比乌斯函数之和

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 模板题... 杜教筛和基于质因子分解的筛法都写了一下模板. 杜教筛 ...

  2. 51Nod 1268 和为K的组合

    51Nod  1268  和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...

  3. 51Nod 1428 活动安排问题

    51Nod   1428  活动安排问题 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活 ...

  4. 51Nod 1278 相离的圆

    51Nod 1278 相离的圆 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 1278 相离的圆 基 ...

  5. 【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1501 dp求出环状不连续的前缀和,剩下东西都可以算出来,比较繁琐. 时间 ...

  6. 【51Nod 1622】【算法马拉松 19C】集合对

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1622 简单题..直接暴力快速幂 #include<cstdio&g ...

  7. 【51Nod 1616】【算法马拉松 19B】最小集合

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1616 这道题主要是查询一个数是不是原有集合的一个子集的所有数的gcd. ...

  8. 【51Nod 1674】【算法马拉松 19A】区间的价值 V2

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1674 对区间分治,统计\([l,r]\)中经过mid的区间的答案. 我的 ...

  9. 随便玩玩系列之一:SPOJ-RNG+51nod 算法马拉松17F+51nod 1034 骨牌覆盖v3

    先说说前面的SPOJ-RNG吧,题意就是给n个数,x1,x2,...,xn 每次可以生成[-x1,x1]范围的浮点数,把n次这种操作生成的数之和加起来,为s,求s在[A,B]内的概率 连续形的概率 假 ...

随机推荐

  1. Windows 反弹 Shell

    NC 反弹 shell 攻击场景: Victim IP: 192.168.2.10 Attacker IP:192.168.2.11 正向 Shell 我们想要弹回Victim的Shell,使用如下命 ...

  2. spring项目配置双数据源读写分离

    我们最早做新项目的时候一直想做数据库的读写分离与主从同步,由于一些原因一直没有去做这个事情,这次我们需要配置双数据源的起因是因为我们做了一个新项目用了另一个数据库,需要把这个数据库的数据显示到原来的后 ...

  3. Spring Cloud--Hystrix服务熔断(线程隔离/服务降级)代码实现

    一旦服务阻塞就进行服务降级或线程隔离.要不然就会导致大面积服务的瘫痪,Hystrix就是干这个的,一出现不健康的服务就进行熔断,不阻塞后面线程的执行. 引入依赖: 加注解: 这三个注解可以用一个注解搞 ...

  4. ASP.NET Core & 双因素验证2FA 实战经验分享

    必读 本文源码核心逻辑使用AspNetCore.Totp,为什么不使用AspNetCore.Totp而是使用源码封装后面将会说明. 为了防止不提供原网址的转载,特在这里加上原文链接: https:// ...

  5. ②将SVN迁移到GitLab-多分支多标签迁移

    之前我们介绍了<①将SVN迁移到GitLab-单分支迁移>,文中研究了svn迁移到git单分支的操作过程,本文针对实际开发过程中svn使用到的trunk.branches.tags情况进行 ...

  6. web前端布局HTML+CSS

    1.W3C标准 万维网联盟(外语缩写:W3C)标准不是某一个标准,而是一系列标准的集合.网页主要由三部分组成:结构(Structure).表现(Presentation)和行为(Behavior).万 ...

  7. Restful api 返回值重复的问题

    Spring boot全家桶前后端分离的项目,在扩充某一个列表形式的返回值时,发现返回值出现了一批的重复. 正常的数据返回: 数值完全一致只是参数名称区分了大小写,如下图: 推测可能是restful格 ...

  8. OC与swift混编 #import "项目名-Swift.h"失效问题

    由于项目多个环境部署,每次改配置比较麻烦,所以线上环境一个TARGETS,内部环境一个TARGETS, 都知道oc和swift混编的时候,会生成一个'项目名-Swift.h'文件,这个文件是隐式的,需 ...

  9. CRM, C4C和SAP Hybris的数据库层设计

    SAP的product都是DB provider无关的. CRM大家都很熟悉了,application developer最多用Open SQL直接操作表. Netweaver里支持的DB provi ...

  10. oracle in和exists区别

    in和exists http://oraclemine.com/sql-exists-vs-in/ https://www.techonthenet.com/oracle/exists.php htt ...