|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.02.2013, 21:37 | #1 |
Регистрация: 04.01.2013
Сообщений: 5
|
ЕГЭ C4 (C++)
http://scool4.zxq.net/Q/
Вот, попробовал, не работает. Сначала выводит 1 без ключа, потом выводит не все что должна. Почему программа себя так ведет? Можно ли такое решение, даже рабочее назвать "эффективным"? Может есть идеи? И заодно, если не сложно, посоветуйте книжку по алгоритмам в общем, составление, оптимизация. |
12.02.2013, 23:28 | #2 |
Пользователь
Регистрация: 30.01.2013
Сообщений: 12
|
0x44616E69696C, я в свое время решал много вариантов ЕГЭ, и потом без проблем его сдал, он несложный. Еще лазил по всяким форумам и сайтам, видел всякие красивые методы решения различных задач. Также есть сайты со списком задач - можно их туда же отправлять на проверку - пример: acmp.ru
|
13.02.2013, 11:10 | #3 | ||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
1)
Цитата:
2) else-ветка вывода мне непонятна совершенно. Почему бы тупо не вывести первые три фирмы, а дальше выводить фирмы, пока частота их упоминания равна частоте упоминания третьей? Цитата:
|
||
13.02.2013, 14:33 | #4 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Тут нет решения, эффективным называть нечего. В ветке else какие-то отстои. Код:
Т.е. если у меня есть всего 4 фирмы и каждая из них встречается 1000 раз - будет 3 * 1000 * 4 итераций внутреннего цикла в худшем случае (тут не должно быть более 3*4 итераций) Поиск наибольшего элемента массива - O(n) Если вы выполните такой поиск 3 раза -алгоритм будет не самым оптимальным, но значительно лучше вашего. Можно все значения засунуть в еще один мап и дальше сделать как абстракшн советует, но это будет неоптимально по памяти (там в требованиях про это написано). |
|
13.02.2013, 14:46 | #5 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Код:
|
|
13.02.2013, 19:25 | #7 | |||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Цитата:
Я думаю, решить ее можно за линейное время ) Цитата:
-------добавил: Держи вот кусок кода: Код:
Тебе остается в еще одном цикле вывести значения, которые встречаются заданное число раз (число то уже известно) - это тоже можно сделать за линейное время, почти также. Сложность алгоритма останется линейной. Последний раз редактировалось rrrFer; 13.02.2013 в 20:10. |
|||
14.02.2013, 12:49 | #8 | ||
Регистрация: 04.01.2013
Сообщений: 5
|
Цитата:
Цитата:
|
||
14.02.2013, 12:58 | #9 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С4 Егэ на Си | interfeys | Помощь студентам | 23 | 29.11.2012 20:25 |
С4 Егэ на Си | interfeys | Помощь студентам | 2 | 19.11.2012 10:18 |
ЕГЭ С1,С2,С3 ПАСКАЛЬ | alex14111 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 03.03.2011 20:51 |
ЕГЭ | Xcopy | Помощь студентам | 6 | 05.02.2010 14:44 |