zoukankan      html  css  js  c++  java
  • bzoj3403[Usaco2009 Open]Cow Line 直线上的牛

    Description

    题目描述
        约翰的N只奶牛(编为1到N号)正在直线上排队.直线上开始的时候一只牛也没有.接下来发生了S(1≤S≤100000)次事件,一次事件可能是以下四种情况之一:
      .一只奶牛加入队伍的左边(输入“AL”).
      .一只奶牛加入队伍的右边(输入“AR”).
      ·K只队伍左边奶牛离开(输入“DLK”).
      ·K只队伍右边奶牛离开(输入“DRK”).
        请求出最后的队伍是什么样.
        数据保证离开的奶牛不会超过队伍里的奶牛数,最后的队伍不空

    Input

        第1行输入S,之后S行每行描述一次事件,格式如题目描述所示

    Output

     
        由左到右输出队伍最后的情况.

    Sample Input

    10
    A L
    A L
    A R
    A L
    D R 2
    A R
    A R
    D L 1
    A L
    A R

    Sample Output

    7
    2
    5
    6
    8

    HINT

    真是斯巴达的一道题……用队列模拟两边加数删数,只要开20w的数组让head、tail等于10w就没啦

    因为不知名的原因还RE了几次

    #include<cstdio>
    int n,k,now=1;
    int q[250002];
    int head=120001,tail=120000;
    char c[2],c1[2];
    int main()
    {
    	scanf("%d",&n);
    	while (n--)
    	  {
    	  	scanf("%s",c);
    	  	if(c[0]=='A')
    	  	{
    	  		scanf("%s",c1);
    	  		if(c1[0]=='R')q[++tail]=now++;
    	  		else q[--head]=now++;
    	  	}
    	  	else
    	  	{
    	  		scanf("%s%d",c1,&k);
    	  		if(c1[0]=='R') tail-=k;
    	  		else head+=k;
    	  	}
    	  }
    	for (int i=head;i<=tail;i++)
    	  printf("%d
    ",q[i]);
    	return 0;
    }
    


    ——by zhber,转载请注明来源
  • 相关阅读:
    opencv行列式按行(列)展开
    线性方程组
    opencvVideoCapture视频和摄像头读写
    浅谈测试的成就感
    关于软件测试职业规划的讨论 .
    多进程,多线程,就是这么回事儿
    测试计划的制定
    写给测试新手 .
    测试最需要的是淡定
    用一个比喻说明项目里各个成员的角色
  • 原文地址:https://www.cnblogs.com/zhber/p/4036088.html
Copyright © 2011-2022 走看看