士兵队列训练问题(HDU 1276)

来源:互联网 发布:淘宝福袋怎么弄 编辑:程序博客网 时间:2024/06/01 09:34

此题链接单击这里

=================

只是模拟过程

附代码

#include <iostream>#include <cstring>#include <list>using namespace std;int main(){    int N;    cin >> N;    while (N--)    {        int m, a[5002];        memset(a, 1, sizeof(a));        cin >> m;        for (int i = 1; i <= m; i++)            a[i] = i;        int k = m;        int loge = 2;        while (k > 3)        {            int q = 0;            if (loge == 2)            {                for (int i = 1; i <= m; i++)                    if (a[i] != 0 && ++q == 2)                    {                        q = 0;                        a[i] = 0;                        k--;                    }                loge = 3;            }            else            {                for (int i = 1; i <= m; i++)                    if (a[i] != 0)                    {                        if (a[i] != 0 && ++q == 3)                        {                            q = 0;                            a[i] = 0;                            k--;                        }                    }                loge = 2;            }        }        loge = 1;        for (int i = 1; i <= m; i++)            if (a[i] != 0)                if (loge)                {                    cout << i;                    loge = 0;                }                else                    cout << ' ' << i;        cout << endl;    }}

有问题联系企鹅791267032
邮箱地址….wutanrong@Hotmail.com

0 0
原创粉丝点击