respuesta:
Leí muchas respuestas en Internet y siento que son bastante complicadas y problemáticas. Aquí escribo mis propias ideas (spray de luz de hermano mayor)
Use una cola de dos extremos para almacenar la matriz. Si desea moverse hacia la derecha, simplemente mueva el último bit al primero , mueva algunos bits y realice ciclos varias veces .
código:
#include <bits/stdc++.h>
using namespace std;
int main() {
deque<int> dp;
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++) {
int a;
cin >> a;
dp.push_back(a);
}
for (int i = 0; i < m; i++) {
dp.push_front(dp[dp.size() - 1]); //将最后一位复制到第一位
dp.pop_back(); //删除最后一位
}
for (int i = 0; i < n; i++) {
printf("%d", dp[i]);
if (i < n - 1) printf(" ");
}
return 0;
}