题目大意:

输入n,n次操作

操作A:在L(左边)或R(右边)插入一个递增的数

操作D:在L(左边)或R(右边)删除m个数

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

Input    Resulting Cow Line

A L      1
A L      2 1
A R      2 1 3
A L      4 2 1 3
D R 2    4 2
A R      4 2 5
A R      4 2 5 6
D L 1    2 5 6
A L      7 2 5 6
A R      7 2 5 6 8

当时没有想到从一个数组中间开始操作 而一直在坚持两个数组模拟左右

也明知有deque可以用 却没有去尝试 最后卒

数组模拟队列

#include <bits/stdc++.h>
using namespace std;
int main()
{
int n; int q[]; ///只用一个大数组存 但要注意开大两倍
while(~scanf("%d",&n))
{
int tail,head,num=;
tail=head=;
/// 考虑全部只放在同一边的情况 所以左右都要有足够的空间
while(n--)
{
char ch,ch1; /// 输入的前面加一个空格 以吸收无用的\r
scanf(" %c %c",&ch,&ch1);
if(ch=='A')
{
if(ch1=='L') q[--head]=num++;
else q[tail++]=num++;
}
else
{
int m; scanf("%d",&m);
if(ch1=='R') tail-=m;
else head+=m;
}
}
for(int i=head;i<tail;i++)
printf("%d\n",q[i]);
printf("\n");
} return ;
}

STL deque

#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n))
{
deque <int> q;
int num=;
char ch,ch1;
while(n--)
{
scanf(" %c %c",&ch,&ch1);
if(ch=='A')
{
if(ch1=='L') q.push_front(num++);
else if(ch1=='R') q.push_back(num++);
}
else
{
int m; scanf("%d",&m);
if(ch1=='R')
{
while(m--)
if(!q.empty()) q.pop_back();
}
else
{
while(m--)
if(!q.empty()) q.pop_front();
}
}
}
while(!q.empty())
{
printf("%d\n",q.front());
q.pop_front();
}
printf("\n");
} return ;
}

USACO 2009 Open Cow Line /// 队列 oj26220的更多相关文章

  1. BZOJ1640: [Usaco2007 Nov]Best Cow Line 队列变换

    1640: [Usaco2007 Nov]Best Cow Line 队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 493  Solved: 2 ...

  2. 1640: [Usaco2007 Nov]Best Cow Line 队列变换

    1640: [Usaco2007 Nov]Best Cow Line 队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 543  Solved: 2 ...

  3. bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换*&&bzoj1692[Usaco2007 Dec]队列变换*

    bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换 bzoj1692[Usaco2007 Dec]队列变换 题意: 有一个奶牛队列.每次可以在原来队列的首端或是尾端牵出 ...

  4. BZOJ 1640: [Usaco2007 Nov]Best Cow Line 队列变换

    Description FJ打算带着他可爱的N (1 ≤ N ≤ 2,000)头奶牛去参加"年度最佳老农"的比赛.在比赛中,每个农夫把他的奶牛排成一列,然后准备经过评委检验. 比赛 ...

  5. bzoj:1692 [Usaco2007 Dec]队列变换&&1640 [Usaco2007 Nov]Best Cow Line 队列变换

    Description FJ打算带他的N(1 <= N <= 30,000)头奶牛去参加一年一度的“全美农场主大奖赛”.在这场比赛中,每个参赛者都必须让他的奶牛排成一列,然后领她们从裁判席 ...

  6. [USACO 07DEC]Best Cow Line, Gold

    Description 题库链接 给以长度为 \(n\) 的字符串,要求每次只能从两边取一个字符,使得取出来之后字典序最小. \(1\leq n\leq 30000\) Solution 将字符串翻转 ...

  7. BZOJ 1640 [Usaco2007 Nov]Best Cow Line 队列变换:贪心【字典序最小】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1640 题意: 给你一个长度为n的字符串. 你可以将原串的首字母或尾字母移动到新串的末尾. ...

  8. USACO 2009 Dec cow toll paths 过路费-floyd

    这道题首先要明确一点,那就是当你从一个点走到自己时,也是需要花费这个点点权值的费用.这个点卡了我两次QWQ 然后我比较喜欢分两步搞: 首先,我们利用floyd的一个性质:就是在更新其他点之间的路线时要 ...

  9. NC24840 [USACO 2009 Mar S]Look Up

    NC24840 [USACO 2009 Mar S]Look Up 题目 题目描述 Farmer John's N (1 <= N <= 100,000) cows, convenient ...

随机推荐

  1. js中的函数声明和函数表达式的区别

    目录 一.声明与表达式的格式 1.1 声明式的格式: 1.2 表达式的格式: 二.区别 2.1 函数表达式可以直接在后面加括号执行,而函数声明不可以. 2.2 函数表达式可以被提前解析出来 2.3 命 ...

  2. 在一台机上搭建多个MYSQL并设置主从

    安装 cd /usr/local/src/ -linux2.-x86_64.tar.gz -linux2.-x86_64 /usr/local/mysql grep mysql /etc/passwd ...

  3. Java获取CPU占用率

    原文链接:https://www.jianshu.com/p/015cc4805e29 最近做一个Java性能统计的问题,需要统计当前进程占用CPU的情况,最开始使用Java MxBean来获取 Op ...

  4. PAT_A1059#Prime Factors

    Source: PAT A1059 Prime Factors (25 分) Description: Given any positive integer N, you are supposed t ...

  5. 真实的『REM』手机屏幕适配

    rem 作为一个低调的长度单位,由于手机端网页的兴起,在屏幕适配中得到重用.使用 rem 前端开发者可以很方便的在各种屏幕尺寸下,通过等比缩放的方式达到设计图要求的效果. rem 的官方定义『The ...

  6. html5语义化标签大全

    常见的语义化标签有 <article>.<section>.<nav>.<aside>.<header>.<footer> 详细 ...

  7. 为Python终端提供持久性历史记录

    有没有办法告诉交互式Python shell在会话之间保留其执行命令的历史记录? 当会话正在运行时,在执行命令之后,我可以向上箭头并访问所述命令,我只是想知道是否有某种方法可以保存这些命令,直到下次我 ...

  8. Spring案例1出纯注解开机

    配置QueryRunner对象:注解说明 package cn.mepu.config; import org.apache.commons.dbutils.QueryRunner; import o ...

  9. uuencode - 对二进制文件编码

    总览 (SYNOPSIS) uuencode [-m] [ file ] name uudecode [-o outfile] [ file ]... 描述 (DESCRIPTION) Uuencod ...

  10. 搭建一个node.js项目

    初始化项目 新建一个文件夹,运行 npm init 初始化项目 mkdir okadaGo cd okadaGo npm init 按照提示输入一些项目的相关信息 D:\web\node>mkd ...