А400

Задача. Дана действительная квадратная матрица порядка [latex]n[/latex]. Получить [latex]x_{1}x_{n} + x_{2}x_{n-1}+ \cdots + x_{n}x_{1}  [/latex], где[latex] x_k[/latex] — наибольшее значение элементов [latex]k[/latex]-й строки данной матрицы.

Суть задачи. Происходит заполнение многомерного массива. После этого в силу коммутативности умножения первая сумма полностью совпадает с последней, вторая — с предпоследней и т.д. Т.е. все слагаемые берутся дважды, кроме середины для нечётного [latex]n[/latex]. Это означает, что каждый максимум при вычислении суммы потребуется ровно один раз и никакой массив максимумов не нужен.

Оригинал решения

Решение на Try Haxe!

Тесты

[latex]n[/latex] Элементы Результат
2 1 2 3 4 16
3 1 2 3
4 5 6
7 8 9
1146

Код

8 thoughts on “А400

  1. Ссылка на try.haxe с одним тестовым примером хотя бы.
    Ссылка на соответствующую задачу на cpp.mazurok.com.
    Тесты и результаты этих тестов.
    Переменная str никак не фигурирует , она постоянно равно 0. Думаю лучше её убрать.
    Табуляция в коде. Примеры есть тут. Я за стиль Олмана, но вы выбирайте как вам удобнее.
    Я понимаю, что описание решения было взято с cpp.mazurok.com. Судя по комментариям оно подходило к первоначальном решению. Позже решение изменилось а описание нет. Думаю надо переформулировать его с тем решением, которое сейчас.

  2. — Отступы!
    — Тесты где?
    — Метки (ключевые слова) стоит переделать.
    — Алгоритм решения нуждается в переделке. В силу коммутативности умножения первая сумма полностью совпадает с последней, вторая — с предпоследней и т.д. Т.е. все слагаемые берутся дважды, кроме середины для нечётного n. Это означает, что каждый максимум при вычислении суммы потребуется ровно один раз и никакой массив максимумов не нужен.

Добавить комментарий