1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| DarkWishmaster |
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: 3 |
Привет. Вот интересная задача:
Дана матрица NxM где её элементы положитнльные и отрицательные числа. Можно умножить сколько раз угодно любую линию и любой столбик на -1. Найдите максимальную суму чисел из матрицы которая может получиться путем этих умножений. Например: 5 3 4 -2 2 3 -1 5 2 0 -3 4 1 -3 5 -3 2 Умножаем 3 линию и 2 столбик. Сума=28. Есть идеи как это вообще сделать? Сначала я думал что можно пройтись по линиям и столбикам и если по модулю сума отрицательных чисел больше положительных то умножаем на -1, но такой способ не помогает так как когда мы умножаем линию то изменются и колоны и наоборот. |
![]() ![]() |
| TarasBer |
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Я тут подумал немного.
1. Если разешить переворачивать только столбцы, то задача становится тривиальной - надо просто перевернуть все столбцы с отрицательной суммой. 2. Мы можем для каждой комбинации переворотов строк применить задачу из п.1. Таким образом, время сокращается с O(2^(n+m)) до O((2^n) *m*n). Что ещё можно сделать, я пока не знаю. -------------------- |
| DarkWishmaster |
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: 3 |
IUknown,
Вообщем твое решение дает 20 баллов из 100 ( там тесты онлайн я их не видел ), нашел одно решение (100/100), вроде он тут только по столбикам идет. Эту строку пока не пойму: if i and (1 shl (j-1))>0
Сообщение отредактировано: DarkWishmaster - |
DarkWishmaster Flip 4.07.2011 23:40
sheka Можно выбрать только одну строку и одинстолбец? 4.07.2011 23:54
DarkWishmaster
Можно выбрать только одну строку и одинстолбец?
… 5.07.2011 2:11
Krjuger Самый простой вариант сделать полный перебор)))Но … 5.07.2011 4:24
Lapp Самый простой вариант сделать полный перебор)))Но … 5.07.2011 5:52
Unconnected Перебирать тут наверное оочень долго можно.. может… 5.07.2011 5:56
Lapp DarkWishmaster, ограничения на размеры матрицы нак… 5.07.2011 12:49
DarkWishmaster
DarkWishmaster, ограничения на размеры матрицы на… 5.07.2011 15:39
IUnknown По всем вариантам от 0 до (2N - 1) и от 0 до (2M -… 5.07.2011 13:03
IUnknown В таком случае подобный моему метод решения вполне… 5.07.2011 16:16
DarkWishmaster IUnknown,
Надеюсь я понял:
первые два цикла переби… 5.07.2011 16:40
TarasBer Опа, стобальное решение как моё.
> Эту строку … 5.07.2011 17:45
IUnknown Вот и спрашивай у автора этого решения. Я в чужом … 5.07.2011 17:49
TarasBer Если бы в онлайн-тестах хотя бы примерно указывало… 5.07.2011 17:54
Unconnected
С другой стороны, учит находить острые углы в код… 5.07.2011 18:02
TarasBer > С другой стороны, учит находить острые углы в… 5.07.2011 18:05![]() ![]() |
|
Текстовая версия | 7.11.2025 2:14 |