zoukankan      html  css  js  c++  java
  • TZOJ:玛祖游戏

    描述

    玛祖是一款非常经典的游戏,游戏的角色是一只青蛙,青蛙每次可以吐出一颗珠子,如果将珠子吐到场景中相同颜色的珠子旁边(称为击中),当三个或者三个以上的同颜色珠子在一起的时候便可以消掉,如果消掉后还有相同颜色的珠子,则可以继续消除(我们称为连击)。

    YuYu也很喜欢这个游戏,而且希望连击次数越多越好,因此每次当她发现击中某种颜色的珠子能达到最大连击次数时,她总是等待该颜色出现!

    现在给定已经出现在游戏场景中的珠子队列,问瑜瑜可能达到的最大连击次数是多少?

    为了简化问题,我们的游戏规则是只要有两个颜色相同的珠子连在一起都可以消掉。

    输入

    输入数据有多组,每组占一行,每行一个由小写字母组成的字符串,长度不超过100000,表示游戏场景中的珠子队列,每个字母代表一种颜色。

    输出

    每组输出一个数字,表示最大的连击次数,该结果不会超过10000。

    样例输入

    样例输出

    题目来源

    台州学院“达内杯”第十届大学生程序设计竞赛

    菜鸡的成长史 ^-^

     

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     ios::sync_with_stdio(false);
     6     list<char> lis;
     7     string s;char b[100005];
     8     while(cin>>s)
     9     {
    10         int len=s.size();
    11         for(int i=0;i<len;i++)
    12         {
    13             lis.push_back(s[i]);
    14         }
    15         lis.unique();
    16         list<char>::iterator it;int jishu=0;
    17         for(it=lis.begin();it!=lis.end();it++)
    18         {
    19             b[++jishu]=*it;
    20         }
    21         lis.clear();
    22         if(jishu==1)
    23             {cout << 1 << endl;continue;}   //特判
    24         int maxx=0;
    25         for(int i=2;i<=jishu;i++)
    26         {
    27             int sum=1;
    28             int j=i-1;
    29             int k=i+1;
    30             while(b[j]==b[k]&&j>=1&&k<=jishu)
    31             {
    32                 sum++;j--;k++;
    33             }
    34             maxx=max(sum,maxx);  //更新最大值
    35         }
    36         cout << maxx << endl;
    37     }
    38     return 0;
    39 }
    View Code

     

     

  • 相关阅读:
    CUDA运行时 Runtime(一)
    CUDA C++程序设计模型
    CUDA C++编程手册(总论)
    深度学习到底有哪些卷积?
    卷积神经网络去雾去雨方法
    马斯克如何颠覆航天? 1/5385成本,c++和python编程!
    CUDA 9中张量核(Tensor Cores)编程
    利用表达式调用全局变量计算出错原因
    述函数的作用,浏览器执行函数的过程
    表达式的差异和相同点
  • 原文地址:https://www.cnblogs.com/qq-1585047819/p/10599216.html
Copyright © 2011-2022 走看看