您的位置:首页 > 其它

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

2015-07-23 15:39 288 查看

此题链接单击这里

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

只是模拟过程

附代码

#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: