|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.09.2015, 22:53 | #1 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Комбинации колон, (готовлюсь к icpc)
Ребят, у меня три вопроса:
1) как можно проверить число 10^9? 2) не очень понял суть задачи 3) и что значит время тестирования 3(сек./тест)? Вообще, кто-нибудь там участвовал?) Какие впечатления?
from dark to light)
|
21.09.2015, 23:17 | #2 | ||
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Цитата:
Программе разрешено работать не более 3 сек в каждом тесте.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
||
22.09.2015, 00:57 | #3 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
так же по мимо самой задачи меня интересует вопрос быстродействия....где вообще можно прочитать более подробно об оптимизации кода? Притом, может быть, кто-то собрал все данные воедино? МОжет есть какая-нибудь статья,..., а то в интернете устал лазить по разным ресурсам, например на одном сайте чисто только о развертке цикла говориться
1) тернарный оператор или if else? (при условии того, что обо можно использовать, случаи, в которых тернарный оператор применить нельзя - не рассматриваю) 2) поток iostream или Printf, scanf отработает быстрее? 3) что лучше: цикл for, while или рекурсия? 4) using namespace std или using std::cin; using std::cout? (чтоб была привязка только к cin и cout, не более, поможет ли в быстродействии?) 5) i=i+1, i+=1? (пример других операторов *=, ну и т.д.)
from dark to light)
Последний раз редактировалось Алексей_2012; 22.09.2015 в 01:39. |
22.09.2015, 02:21 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,318
|
Попробовал наивный алгоритм на informatics.mccme.ru - 7 тестов из 28 прошли (остальные не уложились в односекундный лимит). Все приведенные 5 примеров (ну кроме 3го), по моему мнению, не окажут существенного влияния на решение олимпиадных задач. Гораздо важнее сложность примененного алгоритма.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
22.09.2015, 07:41 | #5 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
На кибере видел алгоритм решения подобной задачи. Правда там не оговаривались ограничения по памяти. Идея - в массиве сохраняется количество делителей, а потом по массиву производится поиск.
Сам алгоритм был примерно таким. 1. Создаём массив a[1..10^9] of longint - тип можно подобрать по результатам домашних испытаний 2. В цикле i перебираем все числа от 1 до 10^9 (или оценить этот предел). 2.1 В цикле j от i до 10^9 шагом i увеличиваем на 1 a[j] 3. В цикле ищем такое a[i], чтобы оно было ["больше или" - Sorry, глупость сморозил, потому и исправил] равно n [и было как можно ближе к n - опять]. Ответом будет i. К алгоритму можно добавить оптимизации, например, если при заполнении массива a[i]=n, то ответ. Или совместить заполнение и поиск, т.к. элементы массива с индексами ниже i не изменяются. Последний раз редактировалось FPaul; 22.09.2015 в 11:04. |
22.09.2015, 08:33 | #6 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
А почитать про "оптимизации"/"хороший код" и т.п. можно Code complete от S. McConnel, не зависимо от ЯП. Но тут задачи вообще не про это наверно, а про алгоритмы, структуры данных. Так что надо приступать к изучению какого-нибудь стандартного курса/книги по алгоритмам (ну там где всякие сортировки, алгоритмы для графов/деревьев, комбинаторика, жадные алгоритмы, разделяй и властвуй, динамическое программирование и все такое) и структурам данных (список, стек/очередь, set, map, графы, деревья и т.п.), понимать какая где сложность и когда что лучше. Если что на всяких Coursera'х, хекслетах, лекториумах полно курсов по этому.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
готовлюсь к олимпиаде по информатике | salauat | Паскаль, Turbo Pascal, PascalABC.NET | 25 | 01.12.2013 21:32 |
Поздравляю братьев СЛАВЯН с победой на ACM-ICPC 2012 | Noor | Свободное общение | 7 | 20.05.2012 17:54 |
Гиа 2012 готовлюсь | XYLIGAN72 | Помощь студентам | 10 | 14.01.2012 15:37 |
Запрещённые комбинации | LuckyOwner | Microsoft Office Excel | 7 | 25.07.2010 10:10 |