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

输入法近期越来越奇怪了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;
}

最新文章

  1. 使用vlc播放器播放rtsp流视频
  2. HDU3465 树状数组逆序数
  3. Windows下好用到必须开机自启的小工具
  4. js实现手机号码和身份证号码校验
  5. Hadoop-1.2.1 安装步骤小结(ubuntu)
  6. Mysql 导入数据,推荐Source命令,太快了
  7. MySQL start and stop
  8. 【好文翻译】测试必看:使用Spire.XLS来生成自动化报表!
  9. oc 一些通用函数
  10. linux 下安装配置jboss as7以及部署应用
  11. 中介者模式(Mediator) 笔记
  12. jQuery Ajax异步处理Json数据详解
  13. 谷歌下解决Pop遮罩层无法遮挡滚动栏下问题
  14. GPU编程--kernels(2)
  15. scala的input
  16. [20180926]共享池中的NETWORK BUFFER.txt
  17. 加壳工具-Virbox Protector Standalone
  18. UI 增加文本
  19. python基础(八)——多线程
  20. 1052: 旋转单词(words)

热门文章

  1. 获取标签的src属性兼容性
  2. ubuntu 14.04搭建PHP项目基本流程
  3. Deploy .Net project automatically with MsBuild and MsDeploy (1)
  4. .Net Core2.0秒杀CMS部署到Centos7.3遇到的坑,酸爽呀
  5. MongoDB安装(windows 10环境)
  6. 一:Tomcat 服务器 在45秒内未启动成功
  7. Docker Register安装与基本认证
  8. 解决:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression &#39;requestMap.maintenancename != null and requestMap.maintenance
  9. 《Metasploit魔鬼训练营》第三章
  10. CSS实现盒子高度撑开且以最高的为高