Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
#1

Библиотеки на олимпиадах

02.08.2013, 18:28. Просмотров 2231. Ответов 29
Метки нет (Все метки)

Я собираюсь участвовать в олимпиаде по информатике(Украина). Я использую Microsoft Visual C++ 2010 Express. На олимпиадах, как я знаю часто используюn намного ранние версии этой программы. Скажите пожалуйста, есть ли запрещенные библиотеки на олимпиадах, такие как #include<getch>. Есть ли все библиотеки Microsoft Visual C++ 2010 Express например Microsoft Visual C++ 6.0 и более ранних. Мне это нужно знать, так как я использую такие библиотеки:
C++
1
2
3
4
5
6
7
#include<iostream>
#include<iomanip>
#include<string>
#include<vector>
#include<algorithm>
#include<fstream>
// другие
И если там не будет библиотеки #include<algorithm>, я просто некоторые вещи не сделаю. Есть ли отличия в библиотеках более ранних Microsoft Visual, и других компиляторах?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2013, 18:28
Ответы с готовыми решениями:

Какой компилятор используется на олимпиадах
Возможно это очень глупый вопрос ,но мне надо знать какой компилятор...

про библиотеки в VS C++ (какие библиотеки нужны для функций 'cout' и 'cin')
какие библиотеки нужны для функций 'cout' и 'cin' ???

Как включить библиотеки в исполняемый файл, чтобы не приходилось ставить библиотеки (Eclipse)
Как включить библиотеки в конечный EXE как это сделано в bilder, чтобы не...

Вызов функции одной динамической библиотеки из другой динамической библиотеки
Добрый день! Помогите пожалуйста разобраться со следующим вопросом. ...

Четверо студентов на олимпиадах
выручите, сделайте пожалуйста две простые программки на Visual Prolog'e: 1)...

29
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
02.08.2013, 18:40 #2
если ты не способен что-то сделать без библиотеки <algorithm>, тебе бесполезно решать олимпиадные задачи.
Т.к. <algorithm> содержит довольно примитивные алгоритмы, которым легко найти замену.
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
02.08.2013, 18:52 #3
Цитата Сообщение от wwmwwm Посмотреть сообщение
Скажите пожалуйста, есть ли запрещенные библиотеки на олимпиадах, такие как #include<getch>.
Что касается getch, то её даже смысла нет запрещать, потому что если стандартный ввод будет из файла, а ты используешь getch, то прога просто повиснет и отвалится по time limit или даже по idleness time limit.

Не по теме:

Цитата Сообщение от wwmwwm Посмотреть сообщение
И если там не будет библиотеки #include<algorithm>, я просто некоторые вещи не сделаю.
Вот этим Pascal и лучше, что там нет таких вещей в стандартной библиотеке...



Добавлено через 1 минуту
Да, не обратил внимания сначала... #include <getch>
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
02.08.2013, 18:52 #4
Цитата Сообщение от Somebody Посмотреть сообщение
Вот этим Pascal и лучше, что там нет таких вещей в стандартной библиотеке...
не понял, каких вещей там нет?
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
02.08.2013, 18:54 #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
не понял, каких вещей там нет?
Нету стандартной библиотеки с алгоритмами. Поэтому те, кто начинают олимпиадное программирование с Паскаля, умеют написать хотя бы бинпоиск и хоть какую сортировку. А кто начинает с C++...
2
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
02.08.2013, 19:02 #6
Цитата Сообщение от Somebody Посмотреть сообщение
Нету стандартной библиотеки с алгоритмами. Поэтому те, кто начинают олимпиадное программирование с Паскаля, умеют написать хотя бы бинпоиск и хоть какую сортировку. А кто начинает с C++...
Ну так ведь и начинать надо грамотно! Зачем вообще начинать с алгоритмов, если шаблоны не знаешь?
Зачем начинать с шаблонов, если с нешаблонными функциями управиться не можешь?
Зачем пользоваться какими-то библиотеками, если циклы освоить не можешь?
1
wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
02.08.2013, 19:43  [ТС] #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
если ты не способен что-то сделать без библиотеки <algorithm>, тебе бесполезно решать олимпиадные задачи.
Т.к. <algorithm> содержит довольно примитивные алгоритмы, которым легко найти замену.
Но не стоит изобретать велосипед. Да, я понимаю, что лучше бы мне тот самый qsort выучить, но так как у меня учителя нет, а выучить много нужно, я просто выучил реализацию этого алгоритма стандартными библиотеками.
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
02.08.2013, 19:54 #8
Цитата Сообщение от wwmwwm Посмотреть сообщение
я просто выучил реализацию этого алгоритма стандартными библиотеками
И что ты понимаешь под реализацией алгоритма в таком случае?
0
Kuzia domovenok
2261 / 2030 / 459
Регистрация: 25.03.2012
Сообщений: 7,173
Записей в блоге: 1
02.08.2013, 19:55 #9
Цитата Сообщение от wwmwwm Посмотреть сообщение
Но не стоит изобретать велосипед. Да, я понимаю, что лучше бы мне тот самый qsort выучить, но так как у меня учителя нет, а выучить много нужно, я просто выучил реализацию этого алгоритма стандартными библиотеками.
если неспособен написать сортировку, олимпиадные задачи решать бесполезно. Просто возьми учебник по алгоритмам. и готовься к решению олимпиадных задач.
0
salam
175 / 156 / 29
Регистрация: 10.07.2012
Сообщений: 766
02.08.2013, 19:57 #10
Цитата Сообщение от wwmwwm Посмотреть сообщение
Но не стоит изобретать велосипед. Да, я понимаю, что лучше бы мне тот самый qsort выучить, но так как у меня учителя нет, а выучить много нужно, я просто выучил реализацию этого алгоритма стандартными библиотеками.
дело в том, что в библиотеке реализованы алгоритмы в первозданном виде... в задачах же очень часто требуется вносить дополнения в самое "нутро"...
в плане более-менее сложных алгоритмов <algorithm> помочь может разве что sort()-ом. главное его преимущество в том, что код можно уменьшить и сделать читабельнее. я, например, очень люблю использовать fill(), reverse(), использую count(), min/max_element()... просто очень удобно.
0
wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
02.08.2013, 20:15  [ТС] #11
Цитата Сообщение от Somebody Посмотреть сообщение
И что ты понимаешь под реализацией алгоритма в таком случае?
C++
1
2
3
4
int comp(const void *i, const void *j)
{
  return *(int *)i - *(int *)j;
}
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
02.08.2013, 20:21 #12
Цитата Сообщение от wwmwwm Посмотреть сообщение
C++
1
2
3
4
int comp(const void *i, const void *j)
{
  return *(int *)i - *(int *)j;
}
Мда... Это функция сравнения и не более того.
0
rrrFer
Заблокирован
02.08.2013, 20:28 #13
Цитата Сообщение от Somebody Посмотреть сообщение
Мда... Это функция сравнения и не более того.
Это опасная функция сравнения и абсолютно беспонтовая, хочу знать откуда ТС ее откопал ).
1
gore-lykovoe
32 / 32 / 3
Регистрация: 04.04.2010
Сообщений: 414
02.08.2013, 21:55 #14
А может кто пояснить этот алгоритм? Не особо врубился как он сравнивает...
1
Nerock
8 / 7 / 2
Регистрация: 02.05.2012
Сообщений: 92
02.08.2013, 21:57 #15
wwmwwm, На олимпиадах все библиотеки, указаные в теме разрешены, так что не боись, и участвуй, и удачи тебе
1
wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
03.08.2013, 00:52  [ТС] #16
Цитата Сообщение от rrrFer Посмотреть сообщение
Это опасная функция сравнения и абсолютно беспонтовая, хочу знать откуда ТС ее откопал ).
Почему. Это же qsort, который упорядычивает массив по возрастанию. Потом в компататоре мы указываем название массива, количество элементов в нем, тип массива, и в конце название функции которую я написал на форуме. Вот так:
C++
1
qsort(arr, arr+n, sizeof(int), comp)
0
gray_fox
What a waste!
1553 / 1258 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
03.08.2013, 02:48 #17
Цитата Сообщение от wwmwwm Посмотреть сообщение
Почему. Это же qsort, который упорядычивает массив по возрастанию.
И зачем он нужен в С++, если есть sort?
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
03.08.2013, 11:45 #18
Цитата Сообщение от wwmwwm Посмотреть сообщение
Почему. Это же qsort, который упорядычивает массив по возрастанию.
Потому что при вычитании может быть переполнение.

Добавлено через 3 минуты
Ещё, думаю, если const void*, то по-хорошему надо const int*.
А такой код с вычитанием и на cppreference.com, и на cplusplus.com.
0
Nameless One
Эксперт С++
5785 / 3434 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
03.08.2013, 11:56 #19
Цитата Сообщение от rrrFer Посмотреть сообщение
Это опасная функция сравнения и абсолютно беспонтовая, хочу знать откуда ТС ее откопал ).
А что в ней «опасного» и «беспонтового»? Кроме того, что const void * приводится не к const int *?

Цитата Сообщение от rrrFer Посмотреть сообщение
хочу знать откуда ТС ее откопал ).
Стандартная функция сравнения чисел для qsort.

Добавлено через 1 минуту
Цитата Сообщение от wwmwwm Посмотреть сообщение
C
1
qsort(arr, arr+n, sizeof(int), comp)
Второй аргумент qsort — это размер массива.

Добавлено через 3 минуты
Цитата Сообщение от Somebody Посмотреть сообщение
Поэтому те, кто начинают олимпиадное программирование с Паскаля, умеют написать хотя бы бинпоиск и хоть какую сортировку. А кто начинает с C++...
Ну, говорить о том, кто лучше знает элементарные алгоритмы — бесполезно, т.к. объективной статистики нет и не может быть, а твоя выборка — нерепрезентативна.

Кстати, на региональных (как минимум) турах ACM ICPC тот же qsort и bsearch разрешены. А вот time почему-то нет.
1
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
03.08.2013, 12:17 #20
Цитата Сообщение от Nameless One Посмотреть сообщение
А вот time почему-то нет.
Если задача такая, что со временем находится более хорошее решение и в какой-то момент оно становится окончательным, то вместо математической границы поиска можно использовать временную. Помню, в Turbo Pascal'е использовали longint absolute 0:$46c. Видимо, посчитали, что это слишком халявно...
0
03.08.2013, 12:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2013, 12:17

Как посмотреть какие библиотеки тянут другие библиотеки процесса
Привет, есть процесс, у него подтянуты dll'ки список которых я могу...

Подключение библиотеки Crypto. Если возможно, нужна ссылка на скачивание данной библиотеки
Возникли сложности с подключением библиотеки Crypto: import...

Приложения не видят библиотеки библиотеки Visual C++
Здравия желаю! Недавно переустанавливал винду с полным форматированием жесткого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru