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