POJ 3087 Shuffle'm Up(简单模拟)
来源:互联网 发布:智能黑科技软件 编辑:程序博客网 时间:2024/06/05 15:46
Description
给定长度都为C两个字符串S1,S2,和一个要求的结果字符串SS。先把S2的最下面一张牌放在最下面,然后S1,S2交错的叠放,得到S,再把S最下面的C个字符赋值给S1,把剩下的赋值给S2,再次重复上面的过程。最后求出要得到SS,需要几步这样的过程
Input
多组用例,第一行为用例组数test,每组用例第一行为S1,S2长度,之后三行分别输入S1,S2,SS
Output
对于每组用例,输出该过程步数,如果不能到达目的则输出-1
Sample Input
2
4
AHAH
HAHA
HHAAAAHH
3
CDE
CDE
EEDDCC
Sample Output
1 2
2 -1
Solution
简单模拟,如果在操作几次之后出现前面已经出现过的状态则陷入循环显然不可能到达目标状态,输出-1
Code
#include<cstdio>#include<cstring>#include<string>#include<iostream>#include<map>using namespace std;int main() { int test,c,i,k; int t=0; cin>>test; while(++t<=test) { cin>>c; char s1[201]; char s2[201]; char s12[401]; cin>>s1>>s2>>s12; map<string,bool>vist;//记录某状态是否出现过 vist[s12]=true; int step=0;//初始化步数 while(true) { char s[201]; int ps=0; for(i=0;i<c;i++)//叠放 { s[ps++]=s2[i]; s[ps++]=s1[i]; } s[ps]='\0';//注意'\0' step++;//步数加一 if(!strcmp(s,s12))//达到目的状态 { cout<<t<<' '<<step<<endl; break; } else if(vist[s]&&strcmp(s,s12))//出现循环而且没有达到目的状态 { cout<<t<<' '<<-1<<endl; break; } vist[s]=true;//将该状态记录 for(i=0;i<c;i++)//取出下半段复制给s1 s1[i]=s[i]; s1[i]='\0'; for(k=0;i<2*c;i++,k++)//取出上半段复制给s2 s2[k]=s[i]; s2[i]='\0'; } } return 0; }
0 0
- POJ 3087 Shuffle'm Up(简单模拟)
- POJ 3087 Shuffle'm Up(模拟)
- POJ 3087 Shuffle'm Up (模拟)
- POJ 3087 Shuffle'm Up(模拟)
- POJ 3087 Shuffle'm Up(模拟)
- poj 3087 Shuffle'm Up(模拟)
- POJ 3087Shuffle'm Up(模拟)
- POJ 3087 Shuffle'm Up (模拟)
- POJ 3087 Shuffle'm Up(模拟)
- POJ.3087 Shuffle'm Up (模拟)
- POJ 3087Shuffle'm Up 简单的模拟题
- POJ 3087 Shuffle'm Up 模拟
- poj-3087-Shuffle'm Up-模拟
- POJ 3087 Shuffle'm Up(模拟题)
- POJ 3087 Shuffle'm Up (模拟)
- poj 3087 Shuffle'm Up (模拟)
- POJ 3087 Shuffle'm Up(模拟)
- Shuffle'm Up (poj 3087 模拟)
- 剑指offer || 03_replaceBlank
- javascript用正则表达式检测用户名的合法性
- unix网络编程各种TCP客户-服务器程序设计实例附环境搭建和编译方法(一)
- android 获取应用列表 点击打开应用
- 指针的问题2 指向常量的指针与常量指针
- POJ 3087 Shuffle'm Up(简单模拟)
- pkg和gtk安装
- JSR 303 - Bean Validation 简介及使用方法
- 将博客搬至CSDN
- [LeetCode][Java] Next Permutation
- python学习笔记——‘is’和‘==’的区别
- Power of Two
- 在Ubuntu 10.10下安装JDK配置Eclipse及Tomcat
- 程序员必知的8大排序(二)-------冒泡排序,快速排序(java实现)