题目大意:给定一个祖玛序列,任选颜色射♂出珠子,问最少射♂出多少珠子

输入法近期越来越奇怪了0.0

首先我们把连续同样的珠子都缩在一起 令f[i][j]表示从i開始的j个珠子的最小消除次数

初值 f[i][1]=cnt[i]==1?2:1

然后对于每一个区间。我们枚举中间点,拆成两半求和

假设这个区间两端点颜色同样。我们还能够把中间消掉,然后两边再补射1或0个

尼玛珠子的颜色能够是0……由于这个WA了半天 真~!@#$%^&*()

此外此题是有BUG的 我的代码不能考虑将三个离散的珠子 聚在一起的情况 可是AC了

例:

7

1 2 2 1 3 3 1

ans:2

因此我又写了第二个版本号,在区间两側的珠子都是单个的时候去区间内部寻找第三个单个的珠子,结果数据原因WA掉了。可是确实能够过这组数据

希望官方能够把数据更新一下~(@^_^@)~

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define M 510
using namespace std;
int n;
pair<int,int>a[M];
int f[M][M];
int main()
{
int i,j,k,x;
cin>>n;
a[0].first=19980402;
for(i=1,j=0;i<=n;i++)
{
scanf("%d",&x);
if(x!=a[j].first)
a[++j].first=x;
a[j].second++;
}
n=j;
memset(f,0x3f,sizeof f);
for(i=1;i<=n;i++)
f[i][1]=a[i].second==1?2:1;
for(j=2;j<=n;j++)
for(i=1;i+j-1<=n;i++)
{
if(a[i].first==a[i+j-1].first)
f[i][j]=f[i+1][j-2]+(a[i].second+a[i+j-1].second==2?1:0);
for(k=1;k<j;k++)
f[i][j]=min(f[i][j],f[i][k]+f[i+k][j-k]);
}
cout<<f[1][n]<<endl;
}

能过那组数据可是WA掉的代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define M 510
using namespace std;
int n;
pair<int,int>a[M];
int f[M][M];
int main()
{
int i,j,k,x;
cin>>n;
a[0].first=19980402;
for(i=1,j=0;i<=n;i++)
{
scanf("%d",&x);
if(x!=a[j].first)
a[++j].first=x;
a[j].second++;
}
n=j;
memset(f,0x3f,sizeof f);
for(i=1;i<=n;i++)
f[i][1]=a[i].second==1?2:1;
for(j=2;j<=n;j++)
for(i=1;i+j-1<=n;i++)
{
if(a[i].first==a[i+j-1].first)
{
if(a[i].second+a[i+j-1].second==2)
{
f[i][j]=f[i+1][j-2]+1;
for(k=2;k<j;k++)
if(a[i+k-1].first==a[i].first&&a[i+k-1].second==1)
f[i][j]=min(f[i][j],f[i+1][k-2]+f[i+k][j-k-1]); }
else
f[i][j]=f[i+1][j-2];
}
for(k=1;k<j;k++)
f[i][j]=min(f[i][j],f[i][k]+f[i+k][j-k]);
}
cout<<f[1][n]<<endl;
}

BZOJ 1032 JSOI2007 祖码Zuma 动态规划的更多相关文章

  1. BZOJ 1032 [JSOI2007]祖码Zuma

    1032: [JSOI2007]祖码Zuma Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 637  Solved: 318[Submit][Stat ...

  2. 1032: [JSOI2007]祖码Zuma

    链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1032 Description 这是一个流行在Jsoi的游戏,名称为祖玛.精致细腻的背景,外加神 ...

  3. BZOJ.1032.[JSOI2007]祖码(区间DP)

    题目链接 BZOJ 洛谷 AC代码: 区间DP,f[i][j]表示消掉i~j需要的最少珠子数. 先把相邻的相同颜色的珠子合并起来. 枚举方法一样,处理一下端点可以碰撞消除的情况就行. 当然合并会出现问 ...

  4. bzoj千题计划120:bzoj1032[JSOI2007]祖码Zuma

    http://www.lydsy.com/JudgeOnline/problem.php?id=1032 https://www.luogu.org/discuss/show?postid=8416 ...

  5. bzoj1032 [JSOI2007]祖码Zuma

    1032: [JSOI2007]祖码Zuma Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 672  Solved: 335[Submit][Stat ...

  6. [BZOJ1032][JSOI2007]祖码Zuma 区间dp

    1032: [JSOI2007]祖码Zuma Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1105  Solved: 576 [Submit][S ...

  7. 【BZOJ 1032】 [JSOI2007]祖码Zuma

    [题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1032 [题意] [题解] /* 设f[i][j]表示从第i个珠子开始的j个珠子被消除; ...

  8. [JSOI2007]祖码Zuma

    题目描述 这是一个流行在Jsoi的游戏,名称为祖玛. 精致细腻的背景,外加神秘的印加音乐衬托,彷佛置身在古老的国度里面,进行一个神秘的游戏——这就是著名的祖玛游戏.祖玛游戏的主角是一只石青蛙,石青蛙会 ...

  9. BZOJ 1032 JSOI 2007 祖码Zuma 区间DP

    题目大意:依照祖玛的玩法(任意选颜色),给出一段区间.问最少用多少个球可以把全部颜色块都消除. 思路:把输入数据依照连续的块处理.保存成颜色和数量.然后用这个来DP.我们知道,一个单独的块须要两个同样 ...

随机推荐

  1. aria-label

    元素中的 aria-label用来命名一个元素     它的值可以是任何字符   读屏软件就会读出aria-label里的内容 <div role=”form” aria-labelledby= ...

  2. 串口接收模块(verilog) 波特率115200

    我来分享一下uart协议之接收verilog代码 顶层实例化 `timecale 1ns / 1ps////////////////////////////////////////////////// ...

  3. Intellij导入子项目时,maven列表子项目灰色不可用---解决方法

    导入子项目的module时,左侧project目录中有一个module图标右下角没有小蓝点,maven管理列表该module为灰色(表明未被管理),尝试几次后终于找到解决方案. 贴一张调好过后的图 第 ...

  4. C#生成缩略图源码

    先看调用的方法: ).ToUpper())                {                    case "JPG":                      ...

  5. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  6. [转载] zookeeper应用——集中配置管理系统的实现

    转载自http://blog.csdn.net/huangfengxiao/article/details/8844239 1 场景描述 参考http://www.ibm.com/developerw ...

  7. 前端如何处理emoji表情

    这段时间在做移动端的开发, 有一个功能就是发表评论,其实这个功能本身是比较简单的, 但是在提测是的时候QA给哦提了一个bug,说输入手机自带的emoji表情发送失败了.我就奇怪了,emoji表情也是文 ...

  8. PHP截取带有汉字的字符串,将汉字按两个字节计算

    <?php header("Content-type:text/html;charset=utf-8"); /** *截取字符串,汉字占两个字节,字母占一个字节 *页面编码必 ...

  9. unity android相互调用

    简介 有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如... 有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去 ...

  10. 如何优化Cocos2d-X游戏的内存

    在游戏项目优化中都会碰到一个问题,如何既能减少内存又能尽量减少包的大小?在实际项目中有些经验分享一下,事实上2D游戏中最占内存的就是图片资源,一张图片使用不同的纹理格式带来的性能差异巨大,下表是我在I ...