欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

POJ-3087Shuffle'm Up

程序员文章站 2022-05-08 23:49:56
...

题目传送门:Shuffle’m Up
分析:洗扑克,模拟题。开一个数组将每次的结果储存起来,再与题目要求的进行比较,此处我用一个循环进行模拟,我规定了1000次,假设在1000次内都模拟不出结果,即当做无法达到。

#include<iostream>
#include<cstring> 
using namespace std;
char s1[105];
char s2[105];
char ns12[300];	     //用来存变换后的结果的数组
char s12[300];
int time=1000;
int main(){
	int k;
	cin>>k;
	int test=1;
	while(k--){
		int c;
		cin>>c;
		for(int i=0;i<c;i++)
			cin>>s1[i];
		for(int i=0;i<c;i++)
			cin>>s2[i];
			cin>>s12;
			int t=1;
			int res=0;
		while(t<=time){			
			int num=0;
			for(int i=0;i<c;i++){
			ns12[num++]=s2[i];
			ns12[num++]=s1[i];
			}
			ns12[2*c]='\0';
			res++;
			if(strcmp(ns12,s12)==0){
				cout<<test<<" "<<res<<endl;
				break;
			}
			for(int i=0;i<c;i++)
				s1[i]=ns12[i];
			for(int i=c;i<2*c;i++)
				s2[i-c]=ns12[i];			
			t++;
		}
			if(t>time)	cout<<test<<" "<<"-1"<<endl;
			test++;
	}	
}
相关标签: POJ