题解 | #洗牌#

https://www.nowcoder.com/practice/5a0a2c7e431e4fbbbb1ff32ac6e8dfa0

// 洗牌 : 存在一定的周期性!

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
	int t, n, k;
	cin >> t;
	while (t--) {
		cin >> n >> k;
		vector<int> arr;
		arr.resize(2 * n);
		for (int i = 0; i < 2 * n; i++) cin >> arr[i];
		// 洗牌!
		for (int i = 0; i < k; i++) { 
			vector<int> tmp(arr.begin(), arr.end()); // 对上一次结果进行拷贝!
			for (int j = 0; j < n; j++) {
				arr[2 * j] = tmp[j]; // 左边的牌的位置!
				arr[2 * j + 1] = tmp[j + n]; // 右边的牌的位置!
			}
		}
		for (int i = 0; i < 2 * n - 1; i++) {
			cout << arr[i] << " ";
		}
		cout <<arr[2*n - 1]<<endl;
	}
	return 0;
}

全部评论

相关推荐

09-17 17:09
门头沟学院 Java
雨忄:有人给出过解法,拖晚点去,然后到时候再找其他理由商量,既增加他们的筛人成本,不一定会给你收回offer ,也能占位避免工贼
秋招的嫡长offer
点赞 评论 收藏
分享
迷茫的大四🐶:哇靠,哥们,啥认证啊,副总裁实习,这么有实力嘛
一起聊美团
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务