zoukankan      html  css  js  c++  java
  • SCAU 8612 发牌

    8612 发牌

    时间限制:500MS  内存限制:1000K 提交次数:0 通过次数:0

    题型: 编程题   语言: 无限制

    Description

    ACM队员去其它城市参加亚洲区预赛往往要坐10多个小时的火车。在车上为了打发时间,有时他们也玩纸牌。下面是一个关于发牌的问题。现有发牌人手上有N张牌,先把放在最上面的牌放到桌上,接着把剩下的N-1张牌最上面的一张取出放到这叠牌的最下面。这样算完成了一次操作。接着再次将最上面一张放到桌上,把剩下的N-2张牌最上面的一张取出放到最下面……直到最后一张牌被放到桌面上。举个例子:一开始手上的牌分别是1,2,3,4,(从上到下),先把1放在桌上,然后把2放在4的后面,所以手上的牌就是3,4,2了,接着把3放在桌上,把4放在2的后面,这时手上的牌就是2,4了,不断重复这个过程,直到手上的牌都放到桌面为止。现在,如果告诉你牌的总数N(编号为1到N),以及最终这N张牌放到桌面上的顺序正好是1,2,3,….,N。问最开始放在手上的那N张牌的顺序!!

    Input

    多行,一行一个正整数N。(1<n<=500) 最后一行是0,表示结束,不用处理<="" div="">

    Output

    每行一个排列,数与数之间用空格隔开。

    Sample Input

    2
    3
    0
    

    Sample Output

    1 2 
    1 3 2 
    

    Provider

    admin

     

    #include<stdio.h>
    #include<string.h>
    int poke[1000000];
    int main()
    {
        int i, j, T, num, front, rear;
        while(scanf("%d", &T) != EOF && T)
        {
            if(T == 1) {printf("1\n"); continue;}
            memset(poke, 0, sizeof(int)*120);
            poke[0] = T;
            poke[1] = T-1;
            rear = 0;
            front = 2;
            for(i=T-2; i>0; --i)
            {
                poke[front++] = poke[rear++];
                poke[front++] = i;
            }
            for(i=front-1; i>=rear; --i)
            if(i == front-1) printf("%d", poke[i]);
            else printf(" %d", poke[i]);
            printf("\n");    
        }
        return 0;
    }

    解题思路:
    WA了一次,真对不起自己!太天真的以为N只能到54 /汗

    如果说是数据结构的话,那么暂且叫做队列吧,从后面开始推,按照放一张牌到桌上后往后面潜一张牌这样连续的行为为一组,比如说输入N=5; 最后的一组(说最先的一组

    更合适)是 [4][5]两张牌, 再往后面推,要把[3]放进来,只能先将[5]调上来,和[3]形成另外一组,牌的情况变成了[3] [5] [4], 以此类推,很简单可以得出下面的序列:

    [2] [4] [3] [5] (放入[2]的时候要把[4]先调上来) ——〉    [1] [5] [2] [4] [3]  end

  • 相关阅读:
    算法----(1)冒泡排序
    淘宝爬虫
    爬虫_豆瓣电影top250 (正则表达式)
    爬虫_猫眼电影top100(正则表达式)
    Android 简单调用摄像头
    Android 简单天气预报
    思维模型
    This view is not constrained, it only has designtime positions, so it will jump to (0,0) unless you
    Android studio preview界面无法预览,报错render problem
    Android studio 3.1.2报错,no target device found
  • 原文地址:https://www.cnblogs.com/liaoguifa/p/2774228.html
Copyright © 2011-2022 走看看