1042. Shuffling Machine 解析

来源:互联网 发布:手机设计图纸软件 编辑:程序博客网 时间:2024/06/15 09:12

看了半天发现是在洗牌。。。。。

看清楚题目,给出的位置是把当前位置的元素放到那个位置去。应该就没事了。

#include <iostream>#include <string>#define SIZE 55using namespace std;string Orig[SIZE], Relt[SIZE];int shuf[SIZE];int n;string int2str(int n) {string s;if (n > 0 && n < 10) {s.push_back('0' + n);}else {s.push_back('1');s.push_back('0' + n % 10);}return s;}void Init() {int c = 1;for (int i = 1; i <= 13; i++,c++) {Orig[c] = "S";Orig[c] += int2str(i);}for (int i = 1; i <= 13; i++, c++) {Orig[c] = "H";Orig[c] += int2str(i);}for (int i = 1; i <= 13; i++, c++) {Orig[c] = "C";Orig[c] += int2str(i);}for (int i = 1; i <= 13; i++, c++) {Orig[c] = "D";Orig[c] += int2str(i);}Orig[c++] = "J1";Orig[c++] = "J2";}void shuff() {for (int i = 0; i < n; i++) {for (int j = 1; j < SIZE; j++) {Relt[shuf[j]] = Orig[j];}for (int j = 1; j < SIZE; j++) {Orig[j] = Relt[j];}}}int main() {cin >> n;for (int i = 1; i < SIZE; i++) {cin >> shuf[i];//cout << i << " " << shuf[i] << endl;}Init();shuff();for (int i = 1; i < SIZE -1; i++) {cout << Relt[i] << " ";}cout << Relt[SIZE - 1] << endl;system("pause");return 0;}


0 0
原创粉丝点击