Летняя практика ИВТ УлГТУ: различия между версиями

Материал из Олимпиадное программирование в УлГТУ
Перейти к навигации Перейти к поиску
(Новая страница: «== Первый этап (8 — 9 июля): знакомство с тестирующей системой и задачами == [[Файл:acmp_registrat…»)
 
 
(не показано 26 промежуточных версий этого же участника)
Строка 1: Строка 1:
==<span style="color: red;">30 августа состоится [[#Дополнительный_этап_(30_августа)|дополнительный контест]]. Сбор участников в 9 часов на кафедре &laquo;Вычислительная техника&raquo;. </span>==
== Первый этап (8 &mdash; 9 июля): знакомство с тестирующей системой и задачами ==
== Первый этап (8 &mdash; 9 июля): знакомство с тестирующей системой и задачами ==


Строка 10: Строка 12:
Рекомендуется решать задачи в порядке возрастания сложности. Упорядоченный по сложности список задач доступен по [http://acmp.ru/?main=tasks&ob=iq&id_type=0 ссылке]. Большинство простых задач имеют разбор решений.
Рекомендуется решать задачи в порядке возрастания сложности. Упорядоченный по сложности список задач доступен по [http://acmp.ru/?main=tasks&ob=iq&id_type=0 ссылке]. Большинство простых задач имеют разбор решений.


[[Пример работы с системой ACMP|Подробный пример работы с системой ACMP]]
На отдельной странице приведён '''[[Пример работы с системой ACMP|подробный пример работы с системой ACMP]]'''.
 
== Второй этап (10 &mdash; 17 июля): заочный контест ==
 
==== Общие сведения ====
 
Заочный контест проводится с тем, чтобы участники могли целенаправленно подготовиться к очному соревнованию, оценить уровень предлагаемых заданий и собственные силы, сформировать навыки решения олимпиадных задач по программированию.
 
Заочный контест организуется на сервере [http://vtcloud1.ulstu.ru/ru/ УлГТУ VTcloud1] с 14:00 10 июля по 14:00 17 июля.
 
'''[http://yadi.sk/d/Rfv_vnmZ6fIdc Архив с учётными данными к системе Contester]'''. Пароль &mdash; фамилия замдекана (кириллицей, первая буква заглавная).
 
После входа нужно перейти на вкладку &laquo;Турниры&raquo;. Там следует выбрать соревнование '''[http://vtcloud1.ulstu.ru/ru/contest-cid-1390-sh-1?ps=1&smt=1 Практика ИВТ — 2013. Заочный этап]'''.
 
Участникам заочного контеста будут предложены 15 &mdash; 20 задач. Добавление задач происходит поэтапно, комплектами по 5 &mdash; 7 задач:
 
* В среду 10 июля в 14:00 участникам становится доступен первый комплект задач;
* В пятницу 12 июля в 02:00 участникам становится доступен второй комплект задач;
* В воскресенье 14 июля в 02:00 участникам становится доступен третий комплект задач.
 
==== Работа в системе Contester ====
 
[[Файл:contester_help_1.png|thumb|right|Страница задачи и форма отправки решения в системе Contester]]
 
Справа показана типовая страница задачи в системе Contester. Чтобы отправить решение, введите его код в текстовом поле внизу, выберите нужный компилятор и нажмите кнопку &laquo;Отправить&raquo;. Справа от текстового поля ввода решения находится ссылка &laquo;Файл попытки&raquo;, переключающая форму в режим отправки текстового файла. Вы можете воспользоваться этим режимом, если не хотите копировать код решения вручную.
 
Справочная система Contester содержит примеры кода решений для различных языков программирования: [http://vtcloud1.ulstu.ru/ru/help-q-1#1 C++], [http://vtcloud1.ulstu.ru/ru/help-q-4#4 C#], [http://vtcloud1.ulstu.ru/ru/help-q-3#3 Java].
 
Помните, что в отличие от системы ACMP, Contester использует '''стандартный формат ввода-вывода (ввод &laquo;с клавиатуры&raquo;, вывод &laquo;на монитор&raquo;)'''.
 
В разделе &laquo;Помощь&raquo; также можно найти информацию о [http://vtcloud1.ulstu.ru/ru/help-q-7#7 вердиктах системы Contester]. Обратите внимание на вердикт Presentation Error. Грубо говоря, PE &mdash; это WA, связанный с несоблюдением формата вывода.
 
На странице каждой задачи в меню слева имеется '''ссылка &laquo;Задать вопрос жюри&raquo;'''. Пользуйтесь ей, если понадобится разъяснение тех или иных неясных моментов. Жюри не выдаёт тесты и может не комментировать вопросы, ответы на которые явно следуют из условия задачи.
 
==== Особенности компилятора C++ ====
 
Участники, использующие язык программирования C++, должны обратить внимание на то, что в системе используется компилятор g++. Его основные особенности:
* Основная функция должна иметь возвращаемый тип <tt>int</tt> (не <tt>void</tt>);
* Аргументы функций библиотеки <tt><math.h></tt> (<tt><cmath></tt>) должны иметь тип <tt>double</tt>;
* Следует избегать глобальных имён <tt>j0</tt>, <tt>j1</tt>, <tt>jn</tt>, <tt>y0</tt>, <tt>y1</tt>, <tt>yn</tt>, <tt>next</tt>, <tt>prev</tt>, <tt>begin</tt>, <tt>end</tt>, <tt>rank</tt>, <tt>count</tt>, <tt>hash</tt>;
* 64-битовые целые имеют тип <tt>long long</tt> (беззнаковые &mdash; <tt>unsigned long long</tt>), соответствующие спецификаторы для <tt>scanf</tt> и <tt>printf</tt> &mdash; <tt>"%lld"</tt> и <tt>"%llu"</tt>.
 
==== Особенности компилятора Java ====
 
Участники, использующие язык программирования Java, должны обратить внимание на следующую особенность:
* Основной класс решения должен иметь имя <tt>solver</tt>.
 
== Третий этап (18 июля): очный контест ==
 
Очный контест &mdash; отчётное мероприятие, по результатам которого студенты получают оценку за учебную практику. На очном контесте также будет проведён разбор задач заочного тура.
 
Очный контест организуется на сервере [http://vtcloud1.ulstu.ru/ru/ УлГТУ VTcloud1] 18 июля. Формат соревнования подразумевает личное присутствие участников в УлГТУ. Участники могут использовать собственные ноутбуки.
 
Участникам очного контеста будут предложены 6 &mdash; 8 задач. Время проведения контеста составляет 180 &mdash; 240 минут.
 
В дневнике практики в раздел &laquo;Индивидуальное задание&raquo; следует записать следующее: '''&laquo;Принять участие в турнире кафедры ВТ по спортивному программированию&raquo;'''.
 
Сбор участников очного контеста состоится на кафедре &laquo;Вычислительная техника&raquo; в 9 часов.
 
== Дополнительный этап (30 августа) ==
 
Дополнительный контест проводится для желающих повысить оценку за учебную практику, а также всех остальных любителей олимпиадного программирования, желающих потренироваться.
 
Условия дополнительного контеста те же, что и у очного контеста: сервер [http://vtcloud1.ulstu.ru/ru/ УлГТУ VTcloud1], личное присутствие участников в УлГТУ, 6 &mdash; 8 задач, 180 &mdash; 240 минут, разрешено использование ноутбуков.
 
Сбор участников состоится <span style="color: red;">'''30 августа в 9:00 на кафедре &laquo;Вычислительная техника&raquo;'''</span>.
 
Студенты, не имеющие возможности лично присутствовать на контесте, могут участвовать в нём заочно или дорешивать задачи после его окончания. Заочное участие не предполагает возможности повысить оценку за учебную практику.
 
== Вопросы и ответы ==
 
* '''''Я забыл логин или пароль, как мне войти в систему?'''''
 
: Обратитесь за помощью к организаторам практики (контактная информация приведена в разделе [[#Обратная связь|Обратная связь]]).
 
* '''''Проверяющая система ACMP не принимает решения на языке программирования C#, а я умею писать только на нём. Что делать?'''''
 
: Существует ряд других площадок, предоставляющих поддержку языка C#. Вы можете использовать для ознакомления одну из них:
: &mdash; [http://acm.timus.ru Timus Online Judge]
: &mdash; [http://codeforces.ru Codeforces]
: &mdash; [http://informatics.mccme.ru/moodle/ Система Московского центра непрерывной математической подготовки]
 
* '''''Учитываются ли результаты ознакомительного этапа и заочного тура при ранжировании участников очного тура?'''''
 
: Позиция в турнирной таблице заочного этапа не учитывается при проведении очного контеста: все участники изначально равноправны. Тем не менее, активное участие и успешное решение задач ознакомительного этапа и заочного контеста может положительно повлиять на вашу оценку за очный контест.
 
* '''''Я студент второго курса, и я заключил договор на прохождение практики вне факультета. Следует ли мне решать задачи?'''''
 
: <s>Если вы проходите практику в ИТ-компании или другой сторонней организации, то вы можете не участвовать в соревнованиях. Тем не менее, если у вас есть желание, вы, безусловно, можете присоединиться. В системе Contester зарегистрированы все студенты первого и второго курсов направления ИВТ.</s>
: '''Upd.''' Руководитель практики И. В. Беляева сообщила, что участие в заочном и очном турах всё же является обязательным для всех студентов.


Рассмотрим процесс решения на примере [http://acmp.ru/index.asp?main=task&id_task=274 задачи №274 &laquo;Дружные числа&raquo;].
== Обратная связь ==


Логика решения достаточно проста: для каждого из проверяемых чисел опишем логический массив, в котором i-ый элемент равен 1, если число содержит цифру i. Два числа являются дружными тогда и только тогда, когда соответствующие им массивы поэлементно равны. Ниже показаны функции для определения логических массивов и их сравнения.
Если вы хотите задать вопрос или внести предложение, то вы можете:


{| width="100%"
* Оставить запись на [[Обсуждение:Летняя практика ИВТ УлГТУ|странице обсуждения]] данной статьи;
| width="50%"  |
void getDigits(int n, bool dn[]) {
    while (n) {
        dn[n % 10] = true;
        n /= 10;
    }
}
| width="10px" | &nbsp;
| width="50%"  |
bool compareDigits(bool da[], bool db[]) {
    for (int i = 0; i < 10; i++)
        if (da[i] != db[i])
            return false;
    return true;
}
|}


Основная функция может иметь следующий вид:
* Послать электронное письмо с темой '''&laquo;Практика ИВТ&raquo;''' Владимиру Фолунину по адресу [mailto:fol34@ya.ru fol34@ya.ru].


  int main() {
В течение заочного или очного тура вы можете оставлять вопросы по задачам через пункт меню &laquo;Задать вопрос жюри&raquo;. Старайтесь формулировать вопросы таким образом, чтобы на них можно было ответить &laquo;Да&raquo; или &laquo;Нет&raquo;.
    int testCnt, a, b;
    bool da[10], db[10];
    scanf("%d", &testsCnt);
    for (int i = 0; i < testsCnt; i++) {
        scanf("%d%d", &a, &b);
        getDigits(a, aDig);
        getDigits(b, bDig);
        printf("%s\n", compareDigits(da, db) ? "YES" : "NO");
    }
    return 0;
}


[[Категория: Летняя практика ИВТ УлГТУ &mdash; 2013]]
[[Категория: Летняя практика ИВТ УлГТУ &mdash; 2013]]

Текущая версия от 18:43, 24 октября 2013

30 августа состоится дополнительный контест. Сбор участников в 9 часов на кафедре «Вычислительная техника».

Первый этап (8 — 9 июля): знакомство с тестирующей системой и задачами

Образец заполнения регистрационной формы ACMP

Студентам предлагается зарегистрироваться и попробовать решить несколько задач в открытой тестирующей системе ACMP.

При регистрации на сайте ACMP принято указывать фамилию, имя и отчество на русском языке. Для того, чтобы облегчить организаторам практики поиск вашей учётной записи, добавьте после имени метку «[УлГТУ]», а также укажите значения полей «Город» и «Учреждение». Пример заполнения регистрационной формы приведён справа.

После регистрации прежде всего следует ознакомиться с разделами Работа в системе и Новичкам.

Рекомендуется решать задачи в порядке возрастания сложности. Упорядоченный по сложности список задач доступен по ссылке. Большинство простых задач имеют разбор решений.

На отдельной странице приведён подробный пример работы с системой ACMP.

Второй этап (10 — 17 июля): заочный контест

Общие сведения

Заочный контест проводится с тем, чтобы участники могли целенаправленно подготовиться к очному соревнованию, оценить уровень предлагаемых заданий и собственные силы, сформировать навыки решения олимпиадных задач по программированию.

Заочный контест организуется на сервере УлГТУ VTcloud1 с 14:00 10 июля по 14:00 17 июля.

Архив с учётными данными к системе Contester. Пароль — фамилия замдекана (кириллицей, первая буква заглавная).

После входа нужно перейти на вкладку «Турниры». Там следует выбрать соревнование Практика ИВТ — 2013. Заочный этап.

Участникам заочного контеста будут предложены 15 — 20 задач. Добавление задач происходит поэтапно, комплектами по 5 — 7 задач:

  • В среду 10 июля в 14:00 участникам становится доступен первый комплект задач;
  • В пятницу 12 июля в 02:00 участникам становится доступен второй комплект задач;
  • В воскресенье 14 июля в 02:00 участникам становится доступен третий комплект задач.

Работа в системе Contester

Страница задачи и форма отправки решения в системе Contester

Справа показана типовая страница задачи в системе Contester. Чтобы отправить решение, введите его код в текстовом поле внизу, выберите нужный компилятор и нажмите кнопку «Отправить». Справа от текстового поля ввода решения находится ссылка «Файл попытки», переключающая форму в режим отправки текстового файла. Вы можете воспользоваться этим режимом, если не хотите копировать код решения вручную.

Справочная система Contester содержит примеры кода решений для различных языков программирования: C++, C#, Java.

Помните, что в отличие от системы ACMP, Contester использует стандартный формат ввода-вывода (ввод «с клавиатуры», вывод «на монитор»).

В разделе «Помощь» также можно найти информацию о вердиктах системы Contester. Обратите внимание на вердикт Presentation Error. Грубо говоря, PE — это WA, связанный с несоблюдением формата вывода.

На странице каждой задачи в меню слева имеется ссылка «Задать вопрос жюри». Пользуйтесь ей, если понадобится разъяснение тех или иных неясных моментов. Жюри не выдаёт тесты и может не комментировать вопросы, ответы на которые явно следуют из условия задачи.

Особенности компилятора C++

Участники, использующие язык программирования C++, должны обратить внимание на то, что в системе используется компилятор g++. Его основные особенности:

  • Основная функция должна иметь возвращаемый тип int (не void);
  • Аргументы функций библиотеки <math.h> (<cmath>) должны иметь тип double;
  • Следует избегать глобальных имён j0, j1, jn, y0, y1, yn, next, prev, begin, end, rank, count, hash;
  • 64-битовые целые имеют тип long long (беззнаковые — unsigned long long), соответствующие спецификаторы для scanf и printf"%lld" и "%llu".

Особенности компилятора Java

Участники, использующие язык программирования Java, должны обратить внимание на следующую особенность:

  • Основной класс решения должен иметь имя solver.

Третий этап (18 июля): очный контест

Очный контест — отчётное мероприятие, по результатам которого студенты получают оценку за учебную практику. На очном контесте также будет проведён разбор задач заочного тура.

Очный контест организуется на сервере УлГТУ VTcloud1 18 июля. Формат соревнования подразумевает личное присутствие участников в УлГТУ. Участники могут использовать собственные ноутбуки.

Участникам очного контеста будут предложены 6 — 8 задач. Время проведения контеста составляет 180 — 240 минут.

В дневнике практики в раздел «Индивидуальное задание» следует записать следующее: «Принять участие в турнире кафедры ВТ по спортивному программированию».

Сбор участников очного контеста состоится на кафедре «Вычислительная техника» в 9 часов.

Дополнительный этап (30 августа)

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

Условия дополнительного контеста те же, что и у очного контеста: сервер УлГТУ VTcloud1, личное присутствие участников в УлГТУ, 6 — 8 задач, 180 — 240 минут, разрешено использование ноутбуков.

Сбор участников состоится 30 августа в 9:00 на кафедре «Вычислительная техника».

Студенты, не имеющие возможности лично присутствовать на контесте, могут участвовать в нём заочно или дорешивать задачи после его окончания. Заочное участие не предполагает возможности повысить оценку за учебную практику.

Вопросы и ответы

  • Я забыл логин или пароль, как мне войти в систему?
Обратитесь за помощью к организаторам практики (контактная информация приведена в разделе Обратная связь).
  • Проверяющая система ACMP не принимает решения на языке программирования C#, а я умею писать только на нём. Что делать?
Существует ряд других площадок, предоставляющих поддержку языка C#. Вы можете использовать для ознакомления одну из них:
Timus Online Judge
Codeforces
Система Московского центра непрерывной математической подготовки
  • Учитываются ли результаты ознакомительного этапа и заочного тура при ранжировании участников очного тура?
Позиция в турнирной таблице заочного этапа не учитывается при проведении очного контеста: все участники изначально равноправны. Тем не менее, активное участие и успешное решение задач ознакомительного этапа и заочного контеста может положительно повлиять на вашу оценку за очный контест.
  • Я студент второго курса, и я заключил договор на прохождение практики вне факультета. Следует ли мне решать задачи?
Если вы проходите практику в ИТ-компании или другой сторонней организации, то вы можете не участвовать в соревнованиях. Тем не менее, если у вас есть желание, вы, безусловно, можете присоединиться. В системе Contester зарегистрированы все студенты первого и второго курсов направления ИВТ.
Upd. Руководитель практики И. В. Беляева сообщила, что участие в заочном и очном турах всё же является обязательным для всех студентов.

Обратная связь

Если вы хотите задать вопрос или внести предложение, то вы можете:

  • Послать электронное письмо с темой «Практика ИВТ» Владимиру Фолунину по адресу fol34@ya.ru.

В течение заочного или очного тура вы можете оставлять вопросы по задачам через пункт меню «Задать вопрос жюри». Старайтесь формулировать вопросы таким образом, чтобы на них можно было ответить «Да» или «Нет».