C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Задачи с олимпиады12.04.2013, 13:29. Показов 5056. Ответов 38
Метки нет (Все метки)
Помогите разобраться с данными задачами с олимпиады:
1. Вводиться 3 остатка от деления числа на 971, 997 и 1033. Вывести это число. Например: I: 5 10 15 O: 835049324 Ограничения: 64 мб памяти, время 1 с Мое решение:
2. Найти количество чисел не больше N, которые не делятся на 2, 3 и 5. I: 10 O: 2 Ограничения: 64 мб памяти, время 1 с Мое решение:
3. Саша сел делать домашнее задание и просидел за столом N часов. Из них Х минут он чесал затылок и смотрел в окно, Y минут искал в письменном столе резинку, чтобы стереть в учебнике по английскому языку карикатуру на своего товарища, на рисование которой он потратил перед этим Z минут. Все последнее время Саша переводил английские слова. Сколько слов он успел перевести, если на перевод одного слова у него уходило 5 минут? Вводятся 4 числа N, X, Y, Z, вывод - количество переведенных слов. I: 2 30 20 30 O: 8 Ограничения: 64 мб памяти, время 1 с Мое решение:
4. Дана последовательность чисел в странном формате: у каждого числа в начале записано количество цифр в том числе, а потом через пробел - сами цифры. Последовательность заканчивается числом 0. Напишите программу, которая в первой строке выведет количество чисел в последовательности, а затем - сами числа, по одному в строке. Количество чисел в последовательности не более 1000. В числах - не более 4-х знаков. I: 2 2 7 3 3 5 1 0 O: 2 27 351 I: 4 1 2 3 4 2 4 3 0 O: 2 1234 43 Ограничения: 64 мб памяти, время 1 с Мое решение:
1
|
12.04.2013, 13:29 | |
Ответы с готовыми решениями:
38
Задача из олимпиады Задание с олимпиады. Массивы Он-лайн олимпиады по программированию C++ vs C# для олимпиады. Примеры задач |
12.04.2013, 13:54 | 2 |
В 1 и 2 какие-то бездумные решения "в лоб". Такие решения может предложить любой, кто хоть что-то смыслит в программировании.
Например: в 1-й задаче легко сделать шаги цикла не по 1, а по 1033 (и на 3 порядка сократить время расчета!) Во 2-й цикл можно сократить до 30 или вообще создать массив и заполнить его нужными значениями заранее.
2
|
C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
||||||
12.04.2013, 14:05 [ТС] | 3 | |||||
Так вот хочу усовершенствовать свою логику для решения подобных задач
Переписал так:
Как?
1
|
C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
|
12.04.2013, 14:09 [ТС] | 5 |
1
|
C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
|
12.04.2013, 14:15 [ТС] | 7 |
1
|
C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
|
12.04.2013, 14:19 [ТС] | 9 |
1
|
12.04.2013, 14:27 | 10 |
"Чистому кодеру" не победить в олимпиаде (разве что в команде с математиком).
2*3*5=30, те в каждой "тридцатке" одинаковое число подходящих чисел (M). Значит, надо умножить количество полных тридцаток в числе на M + добавить "хвостик".
1
|
496 / 11 / 6
Регистрация: 10.04.2013
Сообщений: 44
|
|
12.04.2013, 14:30 | 11 |
На 2,3,5 делиться только число кратное 30, можно готовые значения заранее в массив добавить
0
|
C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
||||||
12.04.2013, 14:44 [ТС] | 12 | |||||
Знаю, но попытаться то стоит.
На примере в числе 10 тридцаток 0, хвост получается 2. Что за число M и как рассчитать хвост? Добавлено через 2 минуты Так нужно найти числа от 1 до N, которые не делятся на 2, 3 и 5. Если N = 10, то таких числа 2 - 1 и 7. Причем здесь 30? Добавлено через 4 минуты Все, я кажется понял. Сейчас сделаю. Добавлено через 3 минуты
0
|
496 / 11 / 6
Регистрация: 10.04.2013
Сообщений: 44
|
|
12.04.2013, 14:56 | 13 |
for (i = 0; i <= 8; i++) if (numbers[i] < (n % 30)) k++;
Это скорее всего
0
|
C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
|
12.04.2013, 14:58 [ТС] | 14 |
1
|
12.04.2013, 14:59 | 15 | |||||
Вы даже понять меня, как математик, не можете Попробую как кодировщику (только алгоритм)
1
|
C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
|
12.04.2013, 15:09 [ТС] | 16 |
OMG. Что еще сказать... Ваш алгоритм засчитан.
Зато у меня код красивее По 3 и 4 не знаете? Там тоже по сути "в лоб". Жаль, пока что недоступны логи тестировщика, неизвестны входящие данные на которых решение ломается...
1
|
C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
|
12.04.2013, 15:15 [ТС] | 18 |
Да, и я с Вашей помощью выигрываю
Это открытая тренировка, может зарегистрироваться кто хочет. Цель - проверить систему. На самой олимпиаде задачи будут значительно сложнее...
1
|
12.04.2013, 15:26 | 19 |
Я считаю, на олимпиаде каждый должен выступать за себя. Знал одного, который задачи школьной олимпиады (школа с матуклоном) размещал на форуме (не этом). Их решали и он как победитель ехал на городскую олимпиаду (где с треском проваливался).
1
|
C#
57 / 57 / 5
Регистрация: 09.03.2013
Сообщений: 216
|
|
12.04.2013, 15:45 [ТС] | 20 |
Не вижу смысла так делать
То что Вы мне подсказали, моей команде никак не поможет через неделю. Разве что, я стал немножечко умнее, наверное. Так не знаете по поводу остальных задач? Вроде простейшие же, а какие-то входные данные не решают.
1
|
12.04.2013, 15:45 | |
12.04.2013, 15:45 | |
Помогаю со студенческими работами здесь
20
сложная задача с олимпиады по программированию Задача с олимпиады, хз как ее решать) Отобрать кандидатов на олимпиады (с отличными оценками) по каждому из предметов Определить среднее количество участников олимпиады из одной школы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |