poj 3032 Card Trick

http://poj.org/problem?id=3032

题意:

第1次把1张牌放到最底端,然后翻开最上面的牌,拿走;
第2次把2张牌放到最底端,然后翻开最上面的牌,拿走;
……
第n次把n张牌放到最底端,然后翻开最上面的牌;
要求翻开牌的字母是:A、2、3 …… K

分析:如下图,模拟翻牌的过程

poj 3032 Card Trick_第1张图片


#include 
#include 
#include 
#include 
using namespace std;

int main()
{
	int T,i,j,n,t,a[20];
	dequedq1;
	scanf("%d",&T);
	while(T--)
	{
		dq1.clear();
		scanf("%d",&n);
		for(i=n;i>0;i--)
			dq1.push_front(i);
		for(i=1;i<=n;i++){
			j=i;
			while(j--){
				t=dq1.front();
				dq1.pop_front();
				dq1.push_back(t);
			}
			t=dq1.front();
			dq1.pop_front();
			a[t]=i;
		}
		for(i=1;i



你可能感兴趣的:(STL,POJ)