codeforces B. Balls Game 解题报告
2024-08-30 13:44:05
题目链接: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 ;
}
最新文章
- ZeroMQ接口函数之 :zmq_msg_copy - 把一个消息的内容复制到另一个消息中
- 让ar执行queryall和queryrow方法返回数组
- No space left on device 解决Linux系统磁盘空间满的办法
- Android中的IMEI
- jQuery 一些小技巧
- SVN switch 用法详解
- sublime text 3 licence code
- 如何在WINDOWS下编译BOOST C++库 .
- android调用百度地图API
- SQL 优化,全
- python学习第八天 -- 迭代
- SSH2三大框架整合警告
- Delphi临界区的使用
- Hibernate(三)
- BufferedInputStream与BufferedOutputStream用法简介
- 【转】如何向Android模拟器打电话发短信
- # 学号 20175223 《Java程序设计》第3周学习总结
- Puppet的搭建和应用
- Java的File.separator
- JS书写规范