设为首页 加入收藏

TOP

HDU 3328 Flipper (stack)
2014-11-23 21:54:15 来源: 作者: 【 】 浏览:4
Tags:HDU 3328 Flipper stack
最近着手打基础,做做STL的题目,虽然一般STL题目难度不大,但需要加快速度的准确率.............................
本题有N张牌,一开始每个位置一张(正面朝上或者朝下),有N-1个操作,每次操作从有牌的最左边或者最右边,将那堆的牌由上到下依次翻转到旁边的那堆之中,操作结束,最后只剩一堆。
在那一堆中执行Q次询问,由上到下,第几张牌初始状态的编号以及它现在是朝上还是朝下。
直接开N个stack存好所有堆的状态......模拟操作即可。
#include   
#include   
#include   
#include  
#include   
#include   
#include   
#include   
#include   
#include   
#include   
#include   
#include //形如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 -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 
  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇[LeetCode] Implement strstr() t.. 下一篇HDU 3480 DP+斜率优化

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis压力测试实战 - (2025-12-27 09:20:24)
·高并发一上来,微服 (2025-12-27 09:20:21)
·Redis 高可用架构深 (2025-12-27 09:20:18)
·Linux 系统监控 的完 (2025-12-27 08:52:29)
·一口气总结,25 个 L (2025-12-27 08:52:27)