|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.10.2020, 12:40 | #121 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
Спасибо)
Ешё одно задание: 1)Исходные данные В единственной строке находится целое число N, 1 ≤ N ≤ 109. Результат Следует вывести два целых положительных числа A и P, таких, что N = A + (A + 1) + … + (A + P − 1). Среди всех пар чисел A и P, удовлетворяющих условию 1, у выводимой пары максимально значение P. Мой вариант: Код:
|
27.10.2020, 17:30 | #122 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 27.10.2020 в 17:46. |
28.10.2020, 18:22 | #123 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
1)Поп-группа «Розовый слон» приступила к записи своего дебютного альбома. Правда, у группы пока всего две песни: «Моя любовь» и «Я скучаю по тебе», но зато на каждую сделано огромное количество ремиксов.
Продюсер группы сказал, что в альбом должно войти ровно n треков, каждый из которых — это ремикс на одну из двух песен группы. Поразмыслив, музыканты решили, что диск будет интересно слушать только в том случае, если на нём не более a треков подряд будут ремиксами на песню «Моя любовь» и не более b треков подряд будут ремиксами на песню «Я скучаю по тебе». Иначе есть риск, что даже самые преданные фанаты не дослушают альбом до конца. Сколько существует различных вариантов записи альбома из n композиций, который будет интересно слушать? Вариант записи — это последовательность чисел 1 и 2, где единицы обозначают ремиксы на песню «Моя любовь», а двойки — ремиксы на песню «Я скучаю по тебе». Два варианта считаются различными, если для некоторого i в одном варианте на i-м месте стоит единица, а в другом — двойка. Мой вариант: Код:
|
28.10.2020, 20:58 | #124 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Честно говоря, мне лень отлаживать ваш код. Такое количество преобразований неоправданно. По идее, можно решить с помощью комбинаторики, но вот простейший перебор:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
14.01.2021, 14:23 | #125 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
Есть 5 задач которые мне интересны, но у меня есть свой вариант только к двум из них.
1)Вдоль моря узкой полосой тянется пляж. В некоторых точках пляжа расположены ларьки с мороженым. В один прекрасный день не все мороженщики вышли на работу. Распределите мороженщиков по ларькам так, чтобы минимальное расстояние между мороженщиками было как можно больше. Так они меньше будут мешать друг другу. Входные данные В первой строке вводятся количество ларьков n (2 < n < 10001) и количество мороженщиков k (1 < k < n), вышедших на работу. Во второй строке заданы n натуральных чисел в порядке возрастания - координаты ларьков (координаты не превосходят 109). Выходные данные Выведите минимальное расстояние между соседними ларьками в оптимальной расстановке. У меня есть свой вариант, но он не работает: Код:
Сейчас Петя учится в одном из лучших университетов и живёт в общежитии со своими одногруппниками. Он решил украсить свою комнату, повесив на одну из стен свои дипломы за школьные олимпиады. Так как к бетонной стене прикрепить дипломы дсотаточно трудно, он решил купить специальную доску из пробкового дерева, чтобы прикрепить её к стене, а к ней - дипломы. Для того, чтобы эта конструкция выглядела более красиво, Петя хочет, чтобы была квадратной и занимала как можно меньше места на стене. Каждый диплом должен быть размещён строго в прямоугольнике w на h. дипломы запрещается поворачивать на 90 градусов. Прямоугольники, соответствующие различным дипломам, не должны иметь общих внутренних точек. Требуется написать программу, которая вычислит минимальный размер стороны доски, которая потребуется Пете для размещения всех своих дипломов. Входные данные Входной файл содержит три целых числа w, h, n (1≤w, h, n ≤ 109). Выходные данные В выходной файл вывести ответ на поставленную задачу. 3)Имеются две строки. На верхней строке отмечено a точек, а на нижней b точек. Соединим отрезком каждую точку верхней строки с каждой точкой нижней строки. Точки расположены так, что количество точек, полученных в результате пересечения отрезков, максимально. Для достижения этой цели достаточно чтобы никакие три отрезка не пересекались в одной точке. Точки на верхней и нижней строках в подсчет не включаются, в них могут пересекаться любое количество отрезков. По значениям a и b Вам необходимо вычислить P(a, b) - максимальное количество точек пересечения, расположенное между двумя строками. Например, пусть a = 2 и b = 3. Из рисунка видно, что P(2, 3) = 3. Входные данные Каждая строка содержит два натуральных числа a (0 < a ≤ 20000) и b (0 < b ≤ 20000). Последний тест содержит два нуля и не обрабатывается. Входные данные содержат не более 1200 тестов. Выходные данные Для каждого теста в отдельной строке вывести его номер и значение P(a, b). Результат помещается в 64-битовое знаковое целое. 4)Минимум в очереди На вход программы подается набор операций с очередью. Каждая операция состоит в добавлении или удаления элемента из очереди. После выполнения каждой операции найдите наименьшее число, которое находится в очереди. Сложите все полученные числа и получите ответ. Если после некоторой операции очередь оказалась пуста, то ничего не прибавляйте к ответу. Если выполнить удаление невозможно, так как очередь пуста, то не выполняйте его. Входные данные Входные данные генерируются в самой программе. На вход подаются параметры для генерации входной последовательности. Первое число n (1 ≤ n ≤ 106) содержит количество операций с очередью. Затем идут четыре неотрицательных числа a, b, c, x0, не превосходящие 10000. Для получения входных данных сгенерируем последовательность x. Первое число в генерируемой последовательности x1. Первое, а также каждое следующее число вычисляется из предыдущего по формуле: xi = (a * xi-1 * xi-1 + b * xi-1 + c) / 100 mod 106, где "/" - операция целочисленного деления, а "mod" - остаток от деления. Если xi mod 5 < 2, то необходимо удалить число из очереди. В противном случае нужно добавить в очередь число xi. Выходные данные Выведите искомую сумму. 5)Милхаузу необходимо на завтра решить задачу, и ему нужна Ваша помощь. Вот задача: Задана строка, состоящая из скобок. Необходимо превратить ее в правильную строку, вставляя как можно меньшее количество скобок в любую позицию (удалять или изменять существующие скобки нельзя). Правильной является строка, которая удовлетворяет следующим правилам: Пустая строка правильная. Если s правильная, то (s) также правильная. Если s и t правильные, то их конкатенация st правильная. Например, "(()())", "" и "(())()" правильные строки, а "())(", "()(" и ")" - нет. Входные данные Задана строка из скобок, которая содержит от 1 до 50 символов включительно. Выходные данные Вывести наименьшее количество скобок, которое следует вставить для того чтобы входная строка стала правильной. Мой вариант, проходит 13 из 20 тестов: Код:
|
14.01.2021, 19:11 | #126 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
3я задача: если немного порисовать и посчитать количество пересечений, то получится, что P(a, b) = a * b * (a - 1) * (b - 1) // 4.
4я задача: вроде никаких подводных камней - просто перевести текст условия задачи в код, то есть организовать очередь и честно проделать все операции над ней. 5я задача: важно не только количество, но и порядок скобок. Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 14.01.2021 в 19:26. |
17.01.2021, 14:34 | #127 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
Ешё одно задание, мой вариант проходит 9% всех тестов.
1)Вы можете вспомнить хоть одного своего знакомого до двадцатилетнего возраста, который в детстве не играл в компьютерные игры? Если да, то может быть вы и сами не знакомы с этим развлечением? Впрочем, трудностей при решении этой задачи это создать не должно. Во многих старых играх с двумерной графикой можно столкнуться с подобной ситуацией. Какой-нибудь Герой прыгает по платформам (или островкам), которые висят в воздухе. Он должен перебраться от одного края экрана до другого. При этом при прыжке с одной платформы на соседнюю, у Героя уходит |y2-y1| единиц Энергии, где y1 и y2 – высоты, на которых расположены эти платформы. Кроме того, у Героя есть Суперприем, который позволяет перескочить через платформу, но на это затрачивается 3*|y3-y1| единиц Энергии. Конечно же, Энергию следует расходовать максимально экономно. Предположим, что вам известны координаты всех платформ в порядке от левого края до правого. Сможете ли вы найти, какое минимальное количество Энергии потребуется Герою, чтобы добраться с первой платформы до последней? Входные данные В первой строке входного файла записано количество платформ n (1 ≤ n ≤ 30000). Вторая строка содержит n натуральных чисел, не превосходящих 30000 – высоты, на которых располагаются платформы. Выходные данные В выходной файл запишите единственное число – минимальное количество Энергии, которую должен потратить игрок на преодоление платформ (конечно же в предположении, что cheat-коды использовать нельзя). Мой вариант: Код:
|
17.01.2021, 15:52 | #128 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Ну это классическая задача на динамическое программирование.
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
25.01.2021, 09:26 | #129 | |
Новичок
Джуниор
Регистрация: 25.01.2021
Сообщений: 3
|
Цитата:
Damnn!!! Nicely executed man. |
|
28.01.2021, 19:48 | #130 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
5 задачек которые попытался сделать. Некоторые смог сделать, остальные нет. Те которые я зделал можете улучшить/упростить?
1)В час пик на остановку одновременно подъехали три маршрутных такси, следующие по одному маршруту, в которые тут же набились пассажиры. Водители обнаружили, что количество людей в разных маршрутках разное, и решили пересадить часть пассажиров так, чтобы в каждой маршрутке было поровну пассажиров. Требуется определить, какое наименьшее количество пассажиров придется при этом пересадить. Входные данные. Входными данными являются три натуральных числа, не превосходящих 100 - количества пассажиров в первой, второй и третьей маршрутках соответственно. Выходные данные. Выведите одно число — наименьшее количество пассажиров, которое требуется пересадить. Если это невозможно, выведите слово IMPOSSIBLE (заглавными буквами). Пример входных Данных: 1 2 3 Пример выходных данных: 1 Мой вариант: Код:
Входные данные. В нескольких строках заданы веса учеников в килограммах, разделенных пробелами (одним или несколькими) или символом конца строки. Читать веса учеников до конца ввода. Выходные данные. Средний вес учеников школы без учета учеников с самым большим и самым маленьким весом. Ответ выводить с точностью до килограмм. Примеры входный данных: 40 23 27 59 68 23 84 27 53 46 Пример выходных данных: 46 Мой вариант (Сделал так что бы код переходил к выполнению после ввода -1): Код:
S - сделать шаг вперед L - повернуться на 90. влево R - повернуться на 90. вправо Напишите программу, которая по заданной программе для робота определит, сколько шагов он сделает прежде, чем впервые вернется на то место, на котором уже побывал до этого, либо установит, что этого не произойдет. Входные данные. Одна строка из заглавных латинских букв S, L, R, описывающая программу для робота. Общее число команд в программе не превышает 200, при этом команд S - не более 50. Выходные данные. Одно число, количество шагов, которое будет сделано (то есть выполнено команд S) прежде, чем робот впервые окажется в том месте, через которое он уже проходил. Если такого не произойдет, выведите число -1. Пример входных данных: SSLSLSLSSRSRS Пример выходных данных: 5 4)Стрелку нужно поразить N мишеней, но у него остался всего один патрон. Требуется определить, может ли он найти такую точку (не обязательно с целыми координатами) и направление выстрела, что пуля, выпущенная из этой точки в этом направлении, пролетит через все мишени. Входные данные. В первой строке входных данных находится целое число N – количество мишеней ( 1<=N <= 100).. В следующих N строках записаны по 4 целых числа xi1,yi1,xi2,yi2 – начало и конец i-й мишени (мишени представлены как непересекающиеся отрезки на плоскости), -10000<= xi1,yi1,xi2,yi2 <=10000 Выходные данные. Одна строка, в которой написано слово YES, если решение есть, и NO – если нет. Пример входных данных 3 2 0 2 4 4 1 6 5 6 3 9 0 Пример выходных данных YES |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
готовлюсь к олимпиаде по информатике | salauat | Паскаль, Turbo Pascal, PascalABC.NET | 25 | 01.12.2013 21:32 |
Подготовиться к олимпиаде за лето | UaKot | Свободное общение | 20 | 10.05.2013 18:53 |
Подготовка к региональной олимпиаде | New man | Помощь студентам | 20 | 14.12.2012 21:01 |
Задачи по олимпиаде | Darick | Помощь студентам | 7 | 23.12.2011 15:45 |
Как подготовиться к олимпиаде? | Kn793 | Помощь студентам | 16 | 26.07.2008 12:22 |