题解 | #洗牌#
洗牌
https://www.nowcoder.com/practice/5a0a2c7e431e4fbbbb1ff32ac6e8dfa0
#include <iostream> #include<vector> using namespace std; int main() { int T,n, k; cin>>T; while(T--) { cin>>n>>k; int num=2*n; vector<int> card(num); for(int i=0;i<num;++i) { cin>>card[i]; } for(int i=0;i<k;++i) { vector<int> tmp(card.begin(),card.end()); for(int j=0;j<n;++j) { card[2*j]=tmp[j]; //左半部分的映射关系 card[2*j+1]=tmp[j+n]; //右半部分的映射关系 } } for(int i=0;i<num-1;++i) { cout<<card[i]<<" "; } cout<<card[num-1]<<endl; } }