Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 51, средняя оценка - 4.80
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
#1

Олимпиадные задачи по программированию - C++

19.12.2012, 18:13. Просмотров 8743. Ответов 27
Метки нет (Все метки)

Пробуйте

Окружной этап всероссийской олимпиады школьников по информатике
Москва, 2 декабря 2012

Кликните здесь для просмотра всего текста
Во всех задачах входные данные вврдятся с клавиатуры (стандартного ввода), результат выводится на экран (стандартный вывод). Проверять корректность входных данных не нужно.
Ограничение по времени работы программы во всех задачах: 1 секунда.
Для сдачи решений в тестирующую систему нужно зайти на страницу ejudge.mioo.ru, для входа в систему используйте выданный вам логин и пароль. Во время тура можно сдавать решения в тестирующую систему много раз, при этом будет производиться проверка вашего решения только на тесте из условия задачи. Если решение проходит тест из условия, то оно принимается на проверку, если тест не пройден - решение не принимается на проверку и не будет оценено. Полный протокол проверки ваших решений будет доступен в тестирующей системе по ссылке ''Отчёт о проверке".
После окончания олимпиады будет проверено и оценено последнее принятое на проверку решение по каждой задаче. Обратите внимание сданное решение обязательно должно проходить тест из условия, иначе оно не будет принято на проверку.
В тестирующей системе также присутствует "нулевая задача", которая приведена для примера работы с тестирующей системой. ''Нулевая задача" не учитывается при подведении результатов олимпиады.
Сохраните свой логин и пароль. Вечером вы сможете ознакомиться с результатами проверки своих решений на сайте ejudge.mioo.ru, используя свой логин и пароль.

A
Олимпиадные задачи по программированию

B
Олимпиадные задачи по программированию
Олимпиадные задачи по программированию

C
Олимпиадные задачи по программированию

D
Олимпиадные задачи по программированию

E
Олимпиадные задачи по программированию


Второй отборочный тур Московской олимпиады по информатике Декабрь 2012 года, olympiads.ru/mosolymp

A
Олимпиадные задачи по программированию

B
Олимпиадные задачи по программированию
Олимпиадные задачи по программированию

C
Олимпиадные задачи по программированию
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 18:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Олимпиадные задачи по программированию (C++):

Олимпиадные задачи - C++
Дорогие друзья! Обращаюсь к вам с необычной просьбой. В прошлом году здесь кто-то выложил ответы на олимпиадные задачи, которые проводились...

Олимпиадные задачи :/ - C++
Здравствуйте! Недавно прошёл очередной тур олимпиады по программированию и мне стало интересно, как следовало решать задачи (авторских...

Олимпиадные задачи - C++
Посоветуйте хороший сайт, на котором есть много олимпиадных задач?

Ошибка в книге Скиены "Олимпиадные задачи по програмированию"?! - C++
Итак, всем привет:) Начал я на днях читать книгу Скиены, сейчас на главе про структуры даных. В книге приведен премер задачи "Сборы на...

Задачи по программированию в С++ - C++
Не могу никак понять программирование на С++ ! Помогите решите мне хоть одну из этих задач я постараюсь понять! П.5.16.Правил ...

Задачи по программированию - C++
Добрый вечер друзья, помогите пожалуйста с задачами по С++: 1)Дана матрица 6х6 целого типа. Создать одномерный массив, содержащий...

27
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
16.02.2013, 13:43 #16
Цитата Сообщение от iama Посмотреть сообщение
Обычная длинная арифметика, никакой интеллектуальности. В чём проблема?
Ну дак попробуй реши...) Я не могу решить, честно скажу) Интересно просто... Какое тут решение.
0
ya_noob
_
313 / 147 / 9
Регистрация: 08.10.2011
Сообщений: 432
16.02.2013, 14:44 #17
Цитата Сообщение от sanyachel9binsk Посмотреть сообщение
Ну дак попробуй реши...) Я не могу решить, честно скажу) Интересно просто... Какое тут решение.
идея такая: каждое слагаемое состоит из небольшого кол-ва единиц, слева от которых огромное кол-во нулей.
Например, первое слагаемое во втором тесте (1210*(8016102012)) можно расписать так: 11002 * (1(семь нулей))2102012 = 11002 * (1(7*102012 нулей))2 = 11(7*102012 + 2 нулей)2
единицы в каждом слагаемом скорее всего не будут пересекаться, и если бы были только операции сложения, то получилось бы что-то типа (11000000000000010000000010100000000000), что легко подсчитать. Но всё портят операции вычитания, из-за которых прийдется заменять приличное кол-во нулей на единицы.
1
sanyachel9binsk
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 209
16.02.2013, 16:26 #18
Цитата Сообщение от ya_noob Посмотреть сообщение
идея такая: каждое слагаемое состоит из небольшого кол-ва единиц, слева от которых огромное кол-во нулей.
Например, первое слагаемое во втором тесте (1210*(8016102012)) можно расписать так: 11002 * (1(семь нулей))2102012 = 11002 * (1(7*102012 нулей))2 = 11(7*102012 + 2 нулей)2
единицы в каждом слагаемом скорее всего не будут пересекаться, и если бы были только операции сложения, то получилось бы что-то типа (11000000000000010000000010100000000000), что легко подсчитать. Но всё портят операции вычитания, из-за которых прийдется заменять приличное кол-во нулей на единицы.
Но тут же надо написать программу...
0
ya_noob
_
313 / 147 / 9
Регистрация: 08.10.2011
Сообщений: 432
16.02.2013, 16:37 #19
Цитата Сообщение от sanyachel9binsk Посмотреть сообщение
Но тут же надо написать программу...
я написал ИДЕЮ решения. руками прийдется считать в любом случае (оценивать каждое слагаемое), и для программы вычислений немного достанется: подсчитать сколько нулей надо заменить единицами при вычитаниях (там числа получаются большие).
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.02.2013, 17:02 #20
Python
1
2
3
4
>>> str(bin((8 * 4 * 2 * 16) ** 2012 + 32 ** 2013 + 8 ** 1212 - 2 ** 2012 - 3)).count('1')
3636
>>> str(bin(12 * 128 ** 20120 + 7 * 32 ** 150 + 5 * 8 ** 90 - 6 * 2 ** 120 - 3 * 2 ** 50)).count('1')
223
0
ya_noob
_
313 / 147 / 9
Регистрация: 08.10.2011
Сообщений: 432
16.02.2013, 17:45 #21
Цитата Сообщение от soon Посмотреть сообщение
Python
1
2
3
4
>>> str(bin((8 * 4 * 2 * 16) ** 2012 + 32 ** 2013 + 8 ** 1212 - 2 ** 2012 - 3)).count('1')
3636
>>> str(bin(12 * 128 ** 20120 + 7 * 32 ** 150 + 5 * 8 ** 90 - 6 * 2 ** 120 - 3 * 2 ** 50)).count('1')
223
Лихо вы посчитали. это что за тип данных может вместить 128**20120 ? и с каких пор 102012 = 20120 ?
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.02.2013, 17:59 #22
Цитата Сообщение от ya_noob Посмотреть сообщение
это что за тип данных может вместить 128**20120 ?
int
Цитата Сообщение от ya_noob Посмотреть сообщение
и с каких пор 102012 = 20120 ?
Ах, да, степень же не ассоциативна.
0
ьнпкфзр
0 / 0 / 0
Регистрация: 16.02.2013
Сообщений: 5
16.02.2013, 18:02 #23
баян
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
16.02.2013, 18:47 #24
Посчитал ручками - получил 4999002999900001 на второй пример.
0
iama
1251 / 976 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
16.02.2013, 19:30 #25
Цитата Сообщение от sanyachel9binsk Посмотреть сообщение
Ну дак попробуй реши...) Я не могу решить, честно скажу) Интересно просто... Какое тут решение.
Я уже написал решение. Могу ссылку сбросить, если вы сами погуглить не в состоянии.
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
20.02.2013, 22:02  [ТС] #26
Тема актуальна)
0
Игорь01
0 / 0 / 0
Регистрация: 15.02.2016
04.08.2014, 12:31 #27
первая задача простая вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "iostream"
using namespace std;
int a,b,n,c;
int main()
{
    cout << "n=";cin >>n;
    cout << "a=";cin >>a;
    cout << "b=";cin >>b;
    if (a<b)
    {
        for (int i=0;i<=a;i++)
        {
            if (i+b>=n)
                c++;
        }
    }
    else if (a>b)
    {
        for(int j=0;j<=b;j++)
        {
            if (j+a>=n)
                c++;
        }
    }
    else
        for (int m=0;m<=a&&c<=b;m++)
    {
        if (m+a>=n&&m+b>=n)
            c++;
    }
    cout << c;
return 0;
}
0
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
04.08.2014, 15:08 #28
iama, зря вы так, что нет олимпиадников. Очень даже есть. Глянул так по быстрому - окружной этап ну очень легкий, честно. Вот второй тур уже немного веселее

По задаче А - пишется обычная обратная польская нотация с переводом между системами счисления.А потом в ответе считается кол-во единиц (ну это просто пробегаемся по всем битам).
0
04.08.2014, 15:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2014, 15:08
Привет! Вот еще темы с ответами:

Ищу задачи по программированию c++ - C++
Надо сборник задач по c++ Чтобы были задачи на циклы, масивы, функции. Желательно с объяснением или решением

Оптимизация олимпиадной задачи по программированию - C++
Есть задача: Ограничение времени на тест: 5 сек Ограничение памяти на тест: 256 Мб Условие Дан массив целых чисел a1, a2, ...,...

Задачи по объектно-ориентированному программированию - C++
Помогите, пожалуйста решить задачи. 1)K-значное число (K ≤ 10) называется пестрым, если все его цифры различны. При этом ноль не...

Алгоритм для решения задачи по программированию - C++
Доброго времени суток всем. Прошу помощи в составлении алгоритма решении задачи: На ежедневную прогулку выходят 15 детей. Их строят в...


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

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

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