Простые задачи на перебор

13 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Шарик и Матроскин чистят дорогу от снега. Дорога разделена на N участков. Для каждого участка известно, сколько минут нужно на его расчистку. Друзья договорились: Шарик чистит первые несколько участков с начала, а Матроскин — оставшиеся с конца. Нужно разделить работу так, чтобы максимальное время работы (у того, кто работает дольше) было минимальным.

Входные данные: В первой строке число N (2 ≤ N ≤ 10). Во второй строке N положительных целых чисел, не превышающих 1000, — время расчистки каждого участка.

Выходные данные: Минимально возможное значение максимального времени работы.

Вы работаете с простым датасетом, где нужно предсказать класс (0 или 1) по одному признаку. Например, предсказываем, болен ли человек (1) или здоров (0) по температуре тела.

У вас есть:

  • Массив признаков X (например, температуры)

  • Массив правильных ответов y (0 или 1)

Вам нужно найти лучшие значения коэффициента w и свободного члена b методом полного перебора, чтобы минимизировать log-loss.

Алгоритм

  1. Переберите все возможные значения w от -2 до 2 с шагом 0.1
  2. Переберите все возможные значения b от -10 до 10 с шагом 0.5
  3. Для каждой пары (wb):
    • Посчитайте линейную комбинацию: z=w⋅X+b
    • Примените сигмоиду: p=σ(z)
    • Посчитайте log-loss
  4. Выберите пару (wb) с минимальным log-loss

Важные детали

  • Используйте функцию сигмоиды
  • Для расчёта log-loss используйте формулу:
    • \(\text{Log-Loss} = -\frac{1}{n}\sum_{i=1}^{n} \left(y_i \cdot \log(p_i) + (1 - y_i) \cdot \log(1 - p_i)\right)\)
  • Чтобы избежать ошибок с логарифмом нуля, ограничьте вероятности: p = np.clip(p, 1e-15, 1 - 1e-15)
  • Bспользуйте np.arrange() для работы с вещественным шагом, вместо range()


Формат входных данных

На вход подаётся:

  • в первой строке признаки (например, температуры): вещественные числа, разделенные одним пробелом
  • во второй строке правильные классы для каждого признака соответственно  (0 или 1).


 Формат выходных данных

Выведите три числа, каждое в отдельной строке:

  1. best_w — лучшее значение коэффициента (float, с точностью до сотых)

  2. best_b — лучшее значение свободного члена (float, с точностью до сотых)

  3. min_loss — минимальное значение log-loss (float, с точностью 4 знака после запятой)

Громозека очень любит валерьянку. На его родной планете Чумароза можно купить за k чумриков (местная валюта) первую упаковку валерьянки, за 2·k чумриков - вторую и так далее (иными словами, за i-ю упаковку надо заплатить i·k чумриков). Громозека хочет купить w упаковок валерьянки.  У него есть n чумриков. Сколько чумриков ему придется взять в кредит в чумарозском банке, чтобы купить w упаковок валерьянки?


Входные данные

В первой строке записано три положительных целых числа k, n, w (1  <=  k, w  <=  1000, 0 <= n <= 109), стоимость первой упаковки, изначальное количество чумарозиков у Громозеки и количество упаковок валерьянки, которые он хочет купить.


Выходные данные

Выведите единственное целое число - количество чумарозиков, которое Громозеке необходимо взять в кредит в банке. Если брать кредит не надо, выведите 0.

 
Примеры
Входные данные Выходные данные
1 3 17 4 13
Дана функция \(z(x) = ax^3 + bx^2 + cx + d\). Для заданных чисел a, b, c и d, выведите все целые значения x из диапазона от 0 до 1000, при которых функция z(x) принимает нулевое значение.

Входные данные
Программа получает на вход 4 числа: a, b, c и d. Каждое число записано в отдельной строке.

Выходные данные
Выведите все значение x, которые удовлетворяют условию задачи в порядке возрастания. 
 
Примеры
Входные данные Выходные данные
1 1
-5
6
0
0 2 3
Весельчак У любит дарить алмазных черепашек. У него в сумке лежат черепашки либо трех цветов: розовый, белый и зеленый, либо четырех цветов: розовый, белый, зеленый и желтый. Он по очереди дарил черепашек из сумки, цвет i-й черепашки был Si. Цвета представлены следующим образом: - розовый, W - белый, G - зеленый, Y - желтый. Если количество цветов черепашек в сумке было три, выведите Three; если цветов было четыре, выведите Four

Входные данные
В первой строке записано число N (\(1<=N<=100\)) - количество Черепашек, которое вынимал Весельчак У. Во второй строке содержатся N символов Si - цвета, вынимаемых черепашек. Каждый символ Si равен P, W, G или Y. Всегда существуют такие i, j и k, что Si = 'P', Sj = 'W' и Sk = 'G'.

Выходные данные
Если количество цветов черепашек в сумке было три, выведите Three; если цветов было четыре, выведите Four

 

Примеры
Входные данные Выходные данные
1 6
G W Y P Y W
Four
2 9
G W W G P W P G G
Three
3 8
P Y W G Y W Y Y
Four
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [2385177; 2385437] простые числа. Выведите все найденные простые числа в порядке возрастания, слева от каждого числа выведите его номер по порядку (каждое число с номером выводите с новой строки). 

В магазине продается мастика в ящиках по a кг (тип 1), b кг (тип 2) и c кг (тип 3). Как купить ровно N кг мастики, не вскрывая ящики? Сколькими способами можно это сделать?
 

Входные данные 
Входная строка содержит четыре числа, разделённые пробелами: a , b , c и N .

Выходные данные 
В первой строке нужно вывести число K способов, которыми можно купить заданное количество мастики (N кг), не вскрывая ящики. В каждой из последующих K строчек программа должна вывести (через пробелы) три числа, ka , kb и kc : количество ящиков 1, 2 и 3 типов для каждого из K вариантов закупки. Варианты должны выводиться в лексикографическом порядке: сначала варианты с наименьшим значением ka , для одинаковых ka – сначала варианты с наименьшим значением kb и т.д.

 

Примеры
Входные данные Выходные данные
1 15 17 21 185 5
0 1 8
1 10 0
3 7 1
5 4 2
7 1 3
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [102438; 124698] числа, у которых ровно 7 различных натуральных делителей, не считая 1 и самого числа. Для каждого найденного числа выведите эти 7 делителей с новой строки в порядке возрастания произведения этих 7 делителей. Делители должны следовать в порядке возрастания.
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [108933; 132757] числа, у которых ровно 2 различных натуральных делителя, не считая 1 и самого числа. Для каждого найденного числа выведите эти 2 делителя с новой строки в порядке возрастания произведения этих 2 делителей. Делители должны следовать в порядке возрастания.
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [289039; 311993] числа,  у которых ровно 8 различных натуральных делителей, не считая 1 и самого числа. Для каждого найденного числа выведите эти 8 делителей с новой строки в порядке возрастания суммы этих 8 делителей. Делители должны следовать в порядке возрастания.

По данному числу N выведите все строки длины N из нулей и единиц в обратном лексикографическом порядке.

Входные данные
Задано единственное число N (\(1 <= N <= 10\)).
 
Выходные данные
Необходимо вывести все строки длины N из нулей и единиц в обратном лексикографическом порядке.

 
Примеры
Входные данные Выходные данные
1 2 11
10
01
00

Вы работаете менеджером и составляете план работ на ближайшее время. Компания, в которой вы работаете, планирует заработать не менее X рублей. Всего имеется n задач, которые необходимо сделать. Однако, вы понимаете, что, возможно, выполнять все задачи нет необходимости, и хотите составить оптимальный план, выбрав для выполнения некоторые из них.

Про каждую задачу известно время ti, которое нужно затратить, чтобы сделать её, а также прибыль pi в рублях, которую сделанная задача принесёт компании. Вы хотите включить в план некоторые задачи так, чтобы:

  • Суммарная прибыль от выполнения этих задач была равна X или более рублей.
  • Суммарное время, затраченное на выполнение задач, включённых в план, было минимально.
Составьте план, обладающий описанными выше свойствами и определите суммарное время выполнения задач, включённых в этот план. В случае, если подобный план составить невозможно, выведите 0.

 

Формат входного файла

В первой строке входного файла input.txt находятся натуральные числа X (1 ≤ T ≤ 100 000) и n (1 ≤ n ≤ 10) — необходимая минимальная прибыль и число задач.

Следующие n строк содержат по два натуральных числа ti и pi (1 ≤ ti, pi ≤ 100 000) — время, которое необходимо затратить на выполнение i-й задачи и прибыль, которую можно получить, выполнив её.

Формат выходного файла

Выведите единственное число — минимальное суммарное время выполнения задач, которое можно получить, составив план, удовлетворяющий написанным выше условиям. В случае, если подобный план составить невозможно, выведите 0.
 

Ввод Вывод
10 3
6 20
2 7
3 4
5

По заданному числу определите число из диапазона от 1 до N с максимальной суммой делителей (включая непростые делители, 1 и само число). Если таких чисел несколько, выведите максимальное из них.


Входные данные
На вход подается натуральное число.

Выходные данные
Выведите на экран ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 5 4
Поделиться
Класснуть