蒟蒻求助!!!
  • 板块学术版
  • 楼主BDLMTCHWYFL
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/8/10 19:02
  • 上次更新2023/10/27 16:04:10
查看原帖
蒟蒻求助!!!
749691
BDLMTCHWYFL楼主2022/8/10 19:02
题目名称:澳门风云(四)
题目描述:已知:
现有一副扑克有2n张,编号为1,2,…,n,n+1,…,2n,每次洗牌之后扑克次序变为:n+1,1,n+2,2,n+3,3,…,2n,n,现已知n与洗牌次数a,你能说出a次洗牌过程扑克牌的顺序与开始时相同的次数吗?
输入描述:一个整数表示牌数量的一半,一个整数a表示洗牌的次数。
输出描述:一个整数。

样例输入:
4 12
样例输出:
2

说明:(0<n<100,0<m<100)
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
	int k,n,m,y,p[10000]={},b[10000]={},s=0;
	cin>>n;
	for(k=1; k<=2*n; k++) {
		p[k]=k;
	}
	for(m=1; m<=20000; m++) {
		y=0;
		for(k=1; k<=n; k++) {
			b[2*k]=p[k];
			b[2*k-1]=p[n+k];
		}
		for(k=1; k<=2*n; k++)
			p[k]=b[k];
		for(k=1; k<=2*n; k++) {
			if(p[k]!=k) {
				y=1;
				break;
			}
		}
		if(y==0) {
			break;
		}
	}
	if(p[k]=b[k]){
		s++;
	}
	cout<<s;
	return 0;
}
2022/8/10 19:02
加载中...