POJ 3087 Shuffle'm Up(模拟题)
来源:互联网 发布:mac dts 转 wav 编辑:程序博客网 时间:2024/06/04 08:12
Shuffle'm Up
大意:
已知两堆牌s1和s2的初始状态, 其牌数均为c,按给定规则能将他们相互交叉组合成一堆牌s12,再将s12的最底下的c块牌归为s1,最顶的c块牌归为s2,依此循环下去。现在输入s1和s2的初始状态 以及 预想的最终状态s12。问s1 s2经过多少次洗牌之后,最终能达到状态s12,若永远不可能相同,则输出"-1"
思路:就是个字符串模拟题。
#include <stdio.h>#include <string.h>void Solve(){ int n, m; char s1[110], s2[110], s3[210], s4[210], s[210]; scanf("%d", &n); for(int p = 1; p <= n; p++) { memset(s, 'a', sizeof(s)); scanf("%d%*c", &m); scanf("%s%s%s", s1, s2, s3); printf("%d ", p); strcpy(s, s1); strcat(s, s2); strcpy(s4, s); int t; for(t = 0; strcmp(s, s3); t++) { for(int j = 0; j < m; j++) { s1[j] = s[j]; s2[j] = s[j+m]; } int i, j; for(i = 0, j = 0; i < m; i++, j+=2) { s[j] = s2[i]; s[j+1] = s1[i]; } if(strcmp(s4, s) == 0) { t = -1; break; } } printf("%d\n", t); }}int main(void){ //freopen("data.in", "r", stdin); Solve(); 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 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 模拟)
- [模拟]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(map+模拟)
- PHP再学习3——RT Thread + LwIP提交表单,文本保存数据
- matlab读取bin文件
- 从头学Android之多媒体--使用MediaRecorder录制音频
- javascript
- 集合框架基础知识
- POJ 3087 Shuffle'm Up(模拟题)
- cocos2d-x入门教程引擎结构
- win7升级sp1包
- 初识Java
- Axis2发布WebService
- LINUX注意(1)
- linux内核学习笔记------iP选项处理(一)
- Mock方法介绍
- 2013年末总结