Geome try/codechef MCO16204 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Новая страница: «Codechef/MCO16204 <source lang="cpp"> #include <bits/stdc++.h> int main() { size_t cnt = 0; std::cin >> cnt; std::vector<int64_t> lst(cnt), rst(…»)
 
Строка 57: Строка 57:
 
</source>
 
</source>
  
{{checkme|[[Участник:Geome try|Ельчинов Егор]] 21:25, 12 мая 2022 (UTC)}}
+
[[Участник:StasFomin|StasFomin]] 02:39, 19 мая 2022 (UTC): Вы невнимательны и игнорировали и курс и задания. Решения ожидается только на Python.
 +
{{:Практикуемся_В_Алгоритмах}}
 +
 
 +
[[Категория:Проблемы в решении]]

Версия 02:39, 19 мая 2022

Codechef/MCO16204

#include <bits/stdc++.h>
 
int main() {
    size_t cnt = 0;
    std::cin >> cnt;
    std::vector<int64_t> lst(cnt), rst(cnt);
    for (auto it = lst.rbegin(); it != lst.rend(); ++it) {
        std::cin >> *it;
    }
    for (auto it = rst.rbegin(); it != rst.rend(); ++it) {
        std::cin >> *it;
    }
 
    auto dim = cnt + 1;
    std::vector<int64_t> dp_ans(dim * dim);
    dp_ans[0 * dim + 0] = 0;
    for (size_t i = 1; i < dim; ++i) {
        dp_ans[i * dim + 0] = lst[i - 1] - dp_ans[(i - 1) * dim + 0];
        dp_ans[0 * dim + i] = rst[i - 1] - dp_ans[0 * dim + (i - 1)];
    }
 
    for (size_t l = 1; l < dim; ++l) {
        for (size_t r = 1; r < dim; ++r) {
            dp_ans[l * dim + r] = std::max(lst[l - 1] - dp_ans[(l - 1) * dim + r],
                                           rst[r - 1] - dp_ans[l * dim + (r - 1)]);
        }
    }
 
    std::cout << dp_ans.back() << '\n';
 
    return 0;
}
 
/*
import numpy as np
 
if __name__ == '__main__':
    cnt = int(input())
    lst = np.fromiter(map(int, input().split()), dtype=np.int64)[::-1]
    rst = np.fromiter(map(int, input().split()), dtype=np.int64)[::-1]
    dim = cnt + 1
    dp_ans = np.zeros(dim * dim, dtype=np.int64)
    dp_ans[0 * dim + 0] = 0
    for l in range(1, dim):
        dp_ans[l * dim + 0] = lst[l - 1] - dp_ans[(l - 1) * dim + 0]
    for r in range(1, dim):
        dp_ans[0 * dim + r] = rst[r - 1] - dp_ans[0 * dim + (r - 1)]
    for l in range(1, dim):
        for r in range(1, dim):
            dp_ans[l * dim + r] = max(lst[l - 1] - dp_ans[(l - 1) * dim + r], \
                                      rst[r - 1] - dp_ans[l * dim + (r - 1)])
    print(dp_ans[cnt * dim + cnt])
*/

StasFomin 02:39, 19 мая 2022 (UTC): Вы невнимательны и игнорировали и курс и задания. Решения ожидается только на Python.

2021-10-15 Practical Block 2021-11-03 14-27-56 image0.png

Концептуально:

2021-10-15 Practical Block 2021-11-03 15-02-30 image0.png

2021-10-15 Practical Block 2021-11-03 14-24-09 image0.png

(Их там 66)

    • Не нужно брать десятки задач на себя сразу, и освобождайте то, что не получается.
  • Решенное
    • Ну смотрите, как оформлено в прошлые годы
    • Решение на подстранице вашей личной страницы
      • Вики-ссылка на задачу
      • Python-код в «<source lang="python"></source>»
      • Метка «{{checkme}}», когда решите.
2021-10-15 Practical Block 2021-11-03 14-22-47 image0.png

(Их там 10)


  • Как легче решать Python
    • Загрузка данных
    • Выбирайте более свежий CPython или PyPy.