X1,e2,y3 свё просто понятно
Код:
#include <iostream>
int* rearrange(int *A, int Asize) {
int * result = new int[Asize];
int p = 0;
for (int i = 0; i < Asize; i += 2) {
result[p] = A[i];
++p;
}
for (int i = 1; i < Asize; i += 2) {
result[p] = A[i];
++p;
}
return result;
}
void print_arr(const int *A, int Asise) {
for (int i = 0; i < Asise; ++i) {
std::cout << A[i] << " ";
}
}
int* change_it_k_times(int * const A, int Asize, int K) {
int * result = A;
for (auto i = 0; i < K; ++i) {
result = rearrange(result, Asize);
print_arr(result, Asize);
}
return result;
}
template <typename T>
void get_sequence(T* A, int N) {
for (auto i = 0; i < N; ++i) {
std::cin >> A[i];
}
}
int main () {
int N, K;
std::cin >> N;
auto A = new int[N];
get_sequence(A, N);
std::cin >> K;
auto R = change_it_k_times(A, N, K);
delete[] A;
delete[] R;
return 0;
}
Так как речь идет о таблице, то лучше перебрать рекурсивно. Логично, что количество путей для клетки (i,j) - это количество путей для правой соседней клетки + количество путей для нижней соседней клетки.
При таком условии мы будем посещать те же клетки слишком часто, однако значение для них меняться не будет. Имеет смысл вычислить их единожды и запомнить для последующих использований. (На самом деле, достаточно иметь буфер вместимостью всего в 6 элементов, но мы сделаем полное запоминание).
(Иллюстрация 3 - таблица кэша)
Иллюстрации кода и возможного вывода прикреплены в дополнительных материалах.
========================
Ваши оценки и отзывы позволяют лучше оценить качество ответа.
Если ответ удовлетворил, не забудь отметить его как "Лучший".
Успехов в учёбе!
========================
Код:
cache = {}
def calculate_max_way_price(x: int, y: int, m:int, n:int):
if (x, y) in cache:
return cache[(x, y)]
x_way, y_way = 0, 0
if x < m - 1:
x_way = calculate_max_way_price(x + 1, y, m, n)
if y < n - 1:
y_way = calculate_max_way_price(x, y + 1, m, n)
if x == m - 1 and y == n - 1:
cache[(x, y)] = 1
return 1
cache[(x, y)] = x_way + y_way
return x_way + y_way
N = int(input())
M = int(input())
print(calculate_max_way_price(0, 0, N, M))
x1 e2 h3 4h 5,m5 d6 равны между собой
а неровны x15 y15
Объяснение:
тут всё просто