Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
wwmwwm
 Аватар для wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
02.08.2013, 18:28     Библиотеки на олимпиадах #1
Я собираюсь участвовать в олимпиаде по информатике(Украина). Я использую 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, и других компиляторах?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2013, 18:28     Библиотеки на олимпиадах
Посмотрите здесь:

C++ Библиотеки
C++ Библиотеки
Библиотеки C++
библиотеки в си++ C++
Библиотеки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.08.2013, 18:40     Библиотеки на олимпиадах #2
если ты не способен что-то сделать без библиотеки <algorithm>, тебе бесполезно решать олимпиадные задачи.
Т.к. <algorithm> содержит довольно примитивные алгоритмы, которым легко найти замену.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
02.08.2013, 18:52     Библиотеки на олимпиадах #3
Цитата Сообщение от wwmwwm Посмотреть сообщение
Скажите пожалуйста, есть ли запрещенные библиотеки на олимпиадах, такие как #include<getch>.
Что касается getch, то её даже смысла нет запрещать, потому что если стандартный ввод будет из файла, а ты используешь getch, то прога просто повиснет и отвалится по time limit или даже по idleness time limit.

Не по теме:

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



Добавлено через 1 минуту
Да, не обратил внимания сначала... #include <getch>
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.08.2013, 18:52     Библиотеки на олимпиадах #4
Цитата Сообщение от Somebody Посмотреть сообщение
Вот этим Pascal и лучше, что там нет таких вещей в стандартной библиотеке...
не понял, каких вещей там нет?
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
02.08.2013, 18:54     Библиотеки на олимпиадах #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
не понял, каких вещей там нет?
Нету стандартной библиотеки с алгоритмами. Поэтому те, кто начинают олимпиадное программирование с Паскаля, умеют написать хотя бы бинпоиск и хоть какую сортировку. А кто начинает с C++...
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.08.2013, 19:02     Библиотеки на олимпиадах #6
Цитата Сообщение от Somebody Посмотреть сообщение
Нету стандартной библиотеки с алгоритмами. Поэтому те, кто начинают олимпиадное программирование с Паскаля, умеют написать хотя бы бинпоиск и хоть какую сортировку. А кто начинает с C++...
Ну так ведь и начинать надо грамотно! Зачем вообще начинать с алгоритмов, если шаблоны не знаешь?
Зачем начинать с шаблонов, если с нешаблонными функциями управиться не можешь?
Зачем пользоваться какими-то библиотеками, если циклы освоить не можешь?
wwmwwm
 Аватар для wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
02.08.2013, 19:43  [ТС]     Библиотеки на олимпиадах #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
если ты не способен что-то сделать без библиотеки <algorithm>, тебе бесполезно решать олимпиадные задачи.
Т.к. <algorithm> содержит довольно примитивные алгоритмы, которым легко найти замену.
Но не стоит изобретать велосипед. Да, я понимаю, что лучше бы мне тот самый qsort выучить, но так как у меня учителя нет, а выучить много нужно, я просто выучил реализацию этого алгоритма стандартными библиотеками.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
02.08.2013, 19:54     Библиотеки на олимпиадах #8
Цитата Сообщение от wwmwwm Посмотреть сообщение
я просто выучил реализацию этого алгоритма стандартными библиотеками
И что ты понимаешь под реализацией алгоритма в таком случае?
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.08.2013, 19:55     Библиотеки на олимпиадах #9
Цитата Сообщение от wwmwwm Посмотреть сообщение
Но не стоит изобретать велосипед. Да, я понимаю, что лучше бы мне тот самый qsort выучить, но так как у меня учителя нет, а выучить много нужно, я просто выучил реализацию этого алгоритма стандартными библиотеками.
если неспособен написать сортировку, олимпиадные задачи решать бесполезно. Просто возьми учебник по алгоритмам. и готовься к решению олимпиадных задач.
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
02.08.2013, 19:57     Библиотеки на олимпиадах #10
Цитата Сообщение от wwmwwm Посмотреть сообщение
Но не стоит изобретать велосипед. Да, я понимаю, что лучше бы мне тот самый qsort выучить, но так как у меня учителя нет, а выучить много нужно, я просто выучил реализацию этого алгоритма стандартными библиотеками.
дело в том, что в библиотеке реализованы алгоритмы в первозданном виде... в задачах же очень часто требуется вносить дополнения в самое "нутро"...
в плане более-менее сложных алгоритмов <algorithm> помочь может разве что sort()-ом. главное его преимущество в том, что код можно уменьшить и сделать читабельнее. я, например, очень люблю использовать fill(), reverse(), использую count(), min/max_element()... просто очень удобно.
wwmwwm
 Аватар для 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;
}
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
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;
}
Мда... Это функция сравнения и не более того.
rrrFer
Заблокирован
02.08.2013, 20:28     Библиотеки на олимпиадах #13
Цитата Сообщение от Somebody Посмотреть сообщение
Мда... Это функция сравнения и не более того.
Это опасная функция сравнения и абсолютно беспонтовая, хочу знать откуда ТС ее откопал ).
gore-lykovoe
 Аватар для gore-lykovoe
31 / 31 / 1
Регистрация: 04.04.2010
Сообщений: 414
02.08.2013, 21:55     Библиотеки на олимпиадах #14
А может кто пояснить этот алгоритм? Не особо врубился как он сравнивает...
Nerock
8 / 7 / 0
Регистрация: 02.05.2012
Сообщений: 92
02.08.2013, 21:57     Библиотеки на олимпиадах #15
wwmwwm, На олимпиадах все библиотеки, указаные в теме разрешены, так что не боись, и участвуй, и удачи тебе
wwmwwm
 Аватар для 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)
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
03.08.2013, 02:48     Библиотеки на олимпиадах #17
Цитата Сообщение от wwmwwm Посмотреть сообщение
Почему. Это же qsort, который упорядычивает массив по возрастанию.
И зачем он нужен в С++, если есть sort?
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
03.08.2013, 11:45     Библиотеки на олимпиадах #18
Цитата Сообщение от wwmwwm Посмотреть сообщение
Почему. Это же qsort, который упорядычивает массив по возрастанию.
Потому что при вычитании может быть переполнение.

Добавлено через 3 минуты
Ещё, думаю, если const void*, то по-хорошему надо const int*.
А такой код с вычитанием и на cppreference.com, и на cplusplus.com.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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 почему-то нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2013, 12:17     Библиотеки на олимпиадах
Еще ссылки по теме:

про библиотеки в VS C++ (какие библиотеки нужны для функций 'cout' и 'cin') C++
C++ Какой компилятор используется на олимпиадах
Вызов функции одной динамической библиотеки из другой динамической библиотеки C++

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

Или воспользуйтесь поиском по форуму:
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
03.08.2013, 12:17     Библиотеки на олимпиадах #20
Цитата Сообщение от Nameless One Посмотреть сообщение
А вот time почему-то нет.
Если задача такая, что со временем находится более хорошее решение и в какой-то момент оно становится окончательным, то вместо математической границы поиска можно использовать временную. Помню, в Turbo Pascal'е использовали longint absolute 0:$46c. Видимо, посчитали, что это слишком халявно...
Yandex
Объявления
03.08.2013, 12:17     Библиотеки на олимпиадах
Ответ Создать тему
Опции темы

Текущее время: 17:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru