c++实现洗牌
来源:互联网 发布:单片机外部存储器 编辑:程序博客网 时间:2024/06/05 01:43
输入描述:
第一行一个数T(T ≤ 100),表示数据组数。对于每组数据,第一行两个数n,k(1 ≤ n,k ≤ 100),接下来一行有2n个数a1,a2,...,a2n(1 ≤ ai ≤ 1000000000)。表示原始牌组从上到下的序列。
输出描述:
对于每组数据,输出一行,最终的序列。数字之间用空格隔开,不要在行末输出多余的空格。
输入例子1:
3
3 1
1 2 3 4 5 6
3 2
1 2 3 4 5 6
2 2
1 1 1 1
输出例子1:
1 4 2 5 3 6
第一行一个数T(T ≤ 100),表示数据组数。对于每组数据,第一行两个数n,k(1 ≤ n,k ≤ 100),接下来一行有2n个数a1,a2,...,a2n(1 ≤ ai ≤ 1000000000)。表示原始牌组从上到下的序列。
输出描述:
对于每组数据,输出一行,最终的序列。数字之间用空格隔开,不要在行末输出多余的空格。
输入例子1:
3
3 1
1 2 3 4 5 6
3 2
1 2 3 4 5 6
2 2
1 1 1 1
输出例子1:
1 4 2 5 3 6
1 5 4 3 2 6
该代码实现了一次性连续输入多组纸牌顺序,最后一次性把每个组洗牌结果输出 。而不是输入一组纸牌,立马输出洗牌后的结果。关键是用到了vector再二维数组的使用。
#include <iostream>#include <vector>using namespace std;int main(){void ShuffleCards(vector<int>&cardArray,int k,vector<vector<int> >&outArray,int &t);int T,x;cin>>T;vector<int> xArray;int n,k;vector<vector<int> >outArray(T);//定义T行的二维数组,不同行可以不等长int t=0;while (T--){cin>>n>>k;vector<int> cardArray(2*n);//一组牌for (int i=0;i<2*n;i++)cin>>cardArray[i];ShuffleCards(cardArray,k,outArray,t);t++;}for (int outi=0;outi<t;outi++){for(vector<int>::const_iterator p=outArray[outi].begin();p!=outArray[outi].end();p++){if (p==outArray[outi].end()-1)cout<<*p;elsecout<<*p<<" ";}if (outi<t-1)cout<<endl;}return 0;}void ShuffleCards(vector<int>&cardArray,int k,vector<vector<int> >&outArray,int&t){int len=cardArray.size();vector<int>a(len);while (k--){for (int j=len-1,i=len/2;j>0;j=j-2,i--){a[j]=cardArray[i+len/2-1];a[j-1]=cardArray[i-1];}for (int j=0;j<len;j++)cardArray[j]=a[j];}outArray[t].resize(len);for (int j=0;j<len;j++)outArray[t][j]=cardArray[j];}
阅读全文
1 0
- 经典洗牌算法C语言实现
- c/c++实现模拟洗牌发牌
- [C/C++]洗牌算法
- 洗牌程序(C#)
- C 语言 洗牌程序
- 洗牌算法--C语言版
- 实现洗牌算法
- C++实现洗牌算法!
- java 实现扑克牌洗牌
- c#实现洗牌程序
- java实现洗牌算法
- java实现洗牌
- c++实现洗牌
- java实现洗牌 发牌
- 实现洗牌算法
- 洗牌算法 (C语言)
- C#List随机交换取数据(C#实现的洗牌算法)
- 利用C实现泛型(generics)效果---原地洗牌,快速排序
- idea中Maven项目缓存(redis)与加密(MD5)
- 局部变量和全局变量以及成员变量的区别
- 用Servlet实现简单的网站登录
- 浏览器调试匿名函数
- 使用Kotlin实现Android简单Demo,对比JAVA实现分析具体语法不同之处(一)
- c++实现洗牌
- Codeforce 52C---Circular RMQ 线段树
- Selenium + phantomJS 爬取动态网站
- 理解mysql 数据库覆盖索引
- Ubuntu下QNX SDP 6.6安装使用指南
- 设计模式(6)-适配器模式
- WUST 1927 信使(最短路之弗洛伊德算法)
- 关于Tomcat部署项目时部署两次问题的解决方案
- POJ 2135 Farm Tour(最小费用最大流模板题)