最近着手打基础,做做STL的题目,虽然一般STL题目难度不大,但需要加快速度的准确率.............................

本题有N张牌,一开始每个位置一张(正面朝上或者朝下),有N-1个操作,每次操作从有牌的最左边或者最右边,将那堆的牌由上到下依次翻转到旁边的那堆之中,操作结束,最后只剩一堆。

在那一堆中执行Q次询问,由上到下,第几张牌初始状态的编号以及它现在是朝上还是朝下。

直接开N个stack存好所有堆的状态......模拟操作即可。

#include <iostream>
#include <algorithm>
#include <cmath>
#include<functional>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <vector>
#include <set>
#include <queue>
#include <stack>
#include <climits>//形如INT_MAX一类的
#define MAX 100005
#define INF 0x7FFFFFFF
using namespace std; int s[111][111];
int head[111];
int n,q;
int numl,numr,final;
char sta[111];
char op[111];
void init() {
memset(s,0,sizeof(s));
memset(head,0,sizeof(head));
numl = 0; numr = 0;
} void solve() {
for(int i=1; i<=n; i++) {
s[i][0] = i;
}
int len = strlen(op);
int right , left;
for(int i=0; i<len; i++) {
if(op[i] == 'R') {
numr ++;
left = n - numr;
right = left + 1;
while(head[right] > -1) {
s[left][++head[left]] = s[right][head[right]--];
}
} else {
numl ++;
left = numl;
right = left + 1;
while(head[left] > -1) {
s[right][++head[right]] = s[left][head[left]--];
}
}
}
} bool judge(int x,int y) {
int span = abs(x - y);
if(span % 2 == 1) {
if(sta[y-1] == 'U') sta[y-1] = 'D';
else sta[y-1] = 'U';
}
if(sta[y-1] == 'U') return 1;
return 0;
}
int main() {
int a;
int ca = 1;
while(scanf("%d",&n) && n) {
init();
scanf("%s",sta);
scanf("%s",op);
scanf("%d",&q);
solve();
final = 1 + numl;
printf("Pile %d\n",ca++);
for(int i=0; i<q; i++) {
scanf("%d",&a);
printf("Card %d is a ",a);
if(judge(final,s[final][n - a]) == 0)printf("face down %d.\n",s[final][n - a]);
else printf("face up %d.\n",s[final][n - a]);
}
}
return 0;
}

HDU 3328 Flipper (stack)的更多相关文章

  1. HDU 5934 Bomb(炸弹)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  2. Java的堆(Heap)和栈(Stack)的区别

    Java中的堆(Heap)是一个运行时数据区,用来存放类的对象:栈(Stack)主要存放基本的数据类型(int.char.double等8种基本数据类型)和对象句柄. 例1 int a=5; int ...

  3. HDU 5734 Acperience(返虚入浑)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  4. HDU 5724 Chess(国际象棋)

    HDU 5724 Chess(国际象棋) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  5. HDU 5826 physics(物理)

     physics(物理) Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   D ...

  6. HDU 5835 Danganronpa(弹丸论破)

     Danganronpa(弹丸论破) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  7. [置顶] ※数据结构※→☆线性表结构(stack)☆============栈 序列表结构(stack sequence)(六)

    栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表.栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据.栈 ...

  8. PHP实现栈(Stack)数据结构

    栈(Stack),是一种特殊的后进先出线性表,其只能在一端进行插入(插入一般称为压栈.进栈或入栈)和删除(删除一般称为弹栈.退栈或出栈)操作,允许进行插入和删除操作的一端称为栈顶,另一端则称为栈底.栈 ...

  9. C# 堆栈(Stack)和队列(Queue)

    一.什么是堆?(Heap)      堆是无序的,是一片不连续的内存域,由用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收.      是程序运行期 ...

随机推荐

  1. TCP/IP之坚持定时器、报活定时器

    TCP中的四个定时器: 1.超时定时器(最复杂的一个) 2.坚持定时器 3.保活定时器 4.2MSL定时器 坚持定时器用于防止通告窗口为0以后c/s双方相互等待死锁的情况:而保活定时器则用于处理半开发 ...

  2. css基础(二)

    一.元素内容的字体属性 1.font-family   字体名称,例如:宋体,新罗马字体等 注意:1.不能使用偏僻的字体,要使用安全字体,如:arial;verdana;times new roman ...

  3. php5.5 + apache2.4 安装配置

    php5.5 做了大量的更新,在与apache搭配的时候如何选择也很有讲究,这里我们以64位 php5.6 和 Apache2.4为例介绍如何配置. 工具/原料 Win7/8 64位 php5.5.6 ...

  4. iOS开发进阶之 UIWebView

    刚接触IOS开发1年多,现在对于混合式移动端开发越来越流行,因为开发成本上.速度上都比传统的APP开发要好,混合式开发是传统模式与PC网页端相结合的模式.那么提到了 APP的混合模式开发,在Andro ...

  5. Linux下Django开发学习(一)

    一,环境配置: 环境:Ubuntu 14.04 LTS, Python 2.7,  Django 1.8 安装Python : Ubuntu自带python2.7,不用安装 安装pip:sudo ap ...

  6. BZOJ 1216: [HNOI2003]操作系统( 优先队列 )

    按题意用priority_queue模拟即可 ---------------------------------------------------------------------- #inclu ...

  7. 使用ownCloud在Linux安装你的个人云服务

    ownCloud是一个免费开源的软件,用于为分享文件,日历,联系人,书签和个人音频/视频.非常容易安装和管理. 前提 在这篇教程里我使用CentOS 6.5 minimal server来安装ownC ...

  8. if简单的写法之范围

    /* Name:if的范围 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月9日 03:22:32 Description: */ # include & ...

  9. Xcode6项目运行在真机上未铺满整个屏幕

    如图 解决见图: 再次运行:

  10. STRUTS2获得session和request

    在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在struts2中,request和session都被隐藏了struts提供两种方式访问sessi ...