zoukankan      html  css  js  c++  java
  • 青蛙王子的题解

    青蛙们正遭遇一次史无前例的危机!为了解救族人,青蛙王子必须完成一个古老而艰难
    的游戏——zuma 游戏。
    zuma 游戏中,一条通道中有一些玻璃珠,每个珠子有各自的颜色,如图 1 所示。青蛙
    王子可以做的是选择一种颜色的珠子射入某个位置。
    在这里插入图片描述
    图 2 中青蛙王子选择一颗蓝色珠子,射入图示的位置,于是得到一个图 3 的局面。
    在这里插入图片描述
    在这里插入图片描述
    当青蛙王子射入一颗珠子后,如果射入的珠子与其他珠子组成了三颗以上连续相同颜色
    的珠子,这些珠子就会消失。例如,将一颗白色珠子射入图 4 中的位置,就会产生三颗颜色
    相同的白色珠子。这三颗珠子就会消失,于是得到图 5 的局面。
    在这里插入图片描述
    在这里插入图片描述
    需要注意的一点是,图 4 中的三颗连续的黄色珠子不会消失,因为并没有珠子射入其中。
    珠子的消失还会产生连锁反应。当一串连续相同颜色的珠子消失后,如果消失位置左右
    的珠子颜色相同,并且长度大于 2,则可以继续消失。例如,图 6 中,射入一颗红色珠子后,
    产生了三颗连续的红色珠子。当红色珠子消失后,它左右都是白色的珠子,并且一共有四颗,
    于是白色珠子也消失了。之后,消失位置的左右都是蓝色珠子,共有三颗,于是蓝色珠子也
    消失。最终得到图 7 的状态。注意,图 7 中的三颗黄色珠子不会消失,因为蓝色珠子消失的
    位置一边是紫色珠子,另一边是黄色珠子,颜色不同。
    在这里插入图片描述
    在这里插入图片描述
    除了上述的情况,没有其他的方法可以消去珠子。
    现在,请你协助青蛙王子消除通道中的珠子。给出每一轮选择的珠子的颜色、射入的位
    置,请你计算出最后还剩下多少颗珠子。

    大模拟,不讲。

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    vector<int>v;
    int main(){
    	v.push_back(0);
    	int n,m,i;
    	scanf("%d %d",&n,&m);
    	for(int i=1;i<=n;i++){
    		int x;
    		cin>>x;
    		v.push_back(x);
    	}
    	for(i=1;i<=m;i++){
    		int x,y;
    		cin>>x>>y;
    		v.insert(v.begin()+y+1,x);
    		y++;
    		int l=y,r=y;
    		while(v[l-1]==v[y]&&l-1>0)l--;
    		while(v[r+1]==v[y]&&r+1<v.size())r++;
    		if(r-l>1){
    			for(int j=l;j<=r;j++)v.erase(v.begin()+l);
    			y=l-1;
    		}
    		while(v.size()>2){
    			int l=y,r=y;
    			while(v[l-1]==v[y]&&l-1>0)l--;
    			while(v[r+1]==v[y]&&r+1<v.size())r++;
    			if(r-l+1<3||r==y)break;
    			else{
    				v.erase(v.begin()+l,v.begin()+r+1);
    				y=l-1;
    			}
    		}
    	}cout<<v.size()-1;
    	return 0;
    }
    
  • 相关阅读:
    全面分析再动手的习惯:链表的反转问题(递归和非递归方式)
    Gatech OMSCS的申请和学习之奥妙
    java线程安全之并发Queue
    一篇文章看懂Java并发和线程安全
    java并发之如何解决线程安全问题
    Java并发/多线程系列——线程安全篇(1)
    当面试官问线程池时,你应该知道些什么?
    java 线程池 使用实例
    多线程-Executors和Executor,线程池
    从阿里Java开发手册学习线程池的正确创建方法
  • 原文地址:https://www.cnblogs.com/zhaohaikun/p/12816977.html
Copyright © 2011-2022 走看看