HDU 3328 Flipper (stack)
最近着手打基础,做做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)的更多相关文章
- HDU 5934 Bomb(炸弹)
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- Java的堆(Heap)和栈(Stack)的区别
Java中的堆(Heap)是一个运行时数据区,用来存放类的对象:栈(Stack)主要存放基本的数据类型(int.char.double等8种基本数据类型)和对象句柄. 例1 int a=5; int ...
- HDU 5734 Acperience(返虚入浑)
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- HDU 5724 Chess(国际象棋)
HDU 5724 Chess(国际象棋) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- HDU 5826 physics(物理)
physics(物理) Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) D ...
- HDU 5835 Danganronpa(弹丸论破)
Danganronpa(弹丸论破) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- [置顶] ※数据结构※→☆线性表结构(stack)☆============栈 序列表结构(stack sequence)(六)
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表.栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据.栈 ...
- PHP实现栈(Stack)数据结构
栈(Stack),是一种特殊的后进先出线性表,其只能在一端进行插入(插入一般称为压栈.进栈或入栈)和删除(删除一般称为弹栈.退栈或出栈)操作,允许进行插入和删除操作的一端称为栈顶,另一端则称为栈底.栈 ...
- C# 堆栈(Stack)和队列(Queue)
一.什么是堆?(Heap) 堆是无序的,是一片不连续的内存域,由用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收. 是程序运行期 ...
随机推荐
- TCP/IP之坚持定时器、报活定时器
TCP中的四个定时器: 1.超时定时器(最复杂的一个) 2.坚持定时器 3.保活定时器 4.2MSL定时器 坚持定时器用于防止通告窗口为0以后c/s双方相互等待死锁的情况:而保活定时器则用于处理半开发 ...
- css基础(二)
一.元素内容的字体属性 1.font-family 字体名称,例如:宋体,新罗马字体等 注意:1.不能使用偏僻的字体,要使用安全字体,如:arial;verdana;times new roman ...
- php5.5 + apache2.4 安装配置
php5.5 做了大量的更新,在与apache搭配的时候如何选择也很有讲究,这里我们以64位 php5.6 和 Apache2.4为例介绍如何配置. 工具/原料 Win7/8 64位 php5.5.6 ...
- iOS开发进阶之 UIWebView
刚接触IOS开发1年多,现在对于混合式移动端开发越来越流行,因为开发成本上.速度上都比传统的APP开发要好,混合式开发是传统模式与PC网页端相结合的模式.那么提到了 APP的混合模式开发,在Andro ...
- Linux下Django开发学习(一)
一,环境配置: 环境:Ubuntu 14.04 LTS, Python 2.7, Django 1.8 安装Python : Ubuntu自带python2.7,不用安装 安装pip:sudo ap ...
- BZOJ 1216: [HNOI2003]操作系统( 优先队列 )
按题意用priority_queue模拟即可 ---------------------------------------------------------------------- #inclu ...
- 使用ownCloud在Linux安装你的个人云服务
ownCloud是一个免费开源的软件,用于为分享文件,日历,联系人,书签和个人音频/视频.非常容易安装和管理. 前提 在这篇教程里我使用CentOS 6.5 minimal server来安装ownC ...
- if简单的写法之范围
/* Name:if的范围 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月9日 03:22:32 Description: */ # include & ...
- Xcode6项目运行在真机上未铺满整个屏幕
如图 解决见图: 再次运行:
- STRUTS2获得session和request
在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在struts2中,request和session都被隐藏了struts提供两种方式访问sessi ...