题目链接:http://codeforces.com/problemset/problem/430/B

题目意思:给出用不多于k种颜色对n个球的染色情况,以及手中的唯一一个球的颜色。初始时,连续的相同颜色的球不多于两个。问用这个手中的球射向同种颜色且不少于两个时,能够destroy的球的数量的最多情况。

关键之处就是如何处理删除同种颜色的球之后序列的变化情况。这就需要两个指针记录位置。

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std; const int maxn = + ;
int c[maxn], ans, maxx; int main()
{
int n, x;
while (scanf("%d%d%d", &n, &x, &x) != EOF)
{
ans = ;
for (int i = ; i < n; i++)
scanf("%d", &c[i]);
for (int i = ; i < n; i++)
{
int k, j;
if (c[i] == c[i-] && c[i] == x)
{
int l = i-;
int r = i+;
int s = ;
while ()
{
int k1 = , k2 = ;
for (j = l; j >= ; j--)
{
if (c[j] != c[l])
break;
k1++;
}
for (k = r; k < n; k++)
{
if (c[k] != c[r])
break;
k2++;
}
if (k1 + k2 >= && c[l] == c[r])
{
l = j;
r = k;
s += k1+k2;
}
else
{
ans = max(ans, s);
break;
}
}
}
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. ZeroMQ接口函数之 :zmq_msg_copy - 把一个消息的内容复制到另一个消息中
  2. 让ar执行queryall和queryrow方法返回数组
  3. No space left on device 解决Linux系统磁盘空间满的办法
  4. Android中的IMEI
  5. jQuery 一些小技巧
  6. SVN switch 用法详解
  7. sublime text 3 licence code
  8. 如何在WINDOWS下编译BOOST C++库 .
  9. android调用百度地图API
  10. SQL 优化,全
  11. python学习第八天 -- 迭代
  12. SSH2三大框架整合警告
  13. Delphi临界区的使用
  14. Hibernate(三)
  15. BufferedInputStream与BufferedOutputStream用法简介
  16. 【转】如何向Android模拟器打电话发短信
  17. # 学号 20175223 《Java程序设计》第3周学习总结
  18. Puppet的搭建和应用
  19. Java的File.separator
  20. JS书写规范

热门文章

  1. svn服务安装与配置
  2. codevs——1958 刺激
  3. Mac Ubuntu ----端口被占用
  4. ASP.NETCore使用AutoFac依赖注入
  5. Android访问网络数据的几种方式Demo
  6. Linux C函数库大全
  7. hdoj-1856-More is better【并查集】
  8. BUPT复试专题—最长连续等差子数列(2014软院)
  9. javascript之scrollTop
  10. innodb 乐观插入因空间不够导致失败,进入悲观插入阶段,这个空间的大小限制