Найдите такое число x что x2 x c с точностью не менее 6 знаков после точки
Перейти к содержимому

Найдите такое число x что x2 x c с точностью не менее 6 знаков после точки

  • автор:

Найдите такое число x что x2 x c с точностью не менее 6 знаков после точки

Требуется реализовать алгоритм бинарного поиска.

В первой строке входных данных содержатся натуральные числа $N$ и $K$ $(0 YES , если это число встречается в первом массиве и NO в противном случае.

Обратите внимание, требуется именно бинарный поиск. Решение с множествами, словарями, map’ами, set’ами и т.п. засчитываться не будут.

B: Левый и правый бинарный поиск

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

В первой строке входных данных записано два числа $N$ и $M$ $(1 \leqslant N,M \leqslant 20000)$. Во второй строке записано $N$ упорядоченных по неубыванию целых чисел — элементы первого списка. В третьей строке записаны $M$ целых неотрицательных чисел — элементы второго списка.

Программа должна вывести $M$ строчек. Для каждого числа из второго списка нужно вывести номер его первого и последнего вхождения в первый список. Нумерация начинается с единицы. Если число не входит в первый список, нужно вывести одно число $0$.

C: Бинарный поиск — подсчёт количества элементов, равных данному числу

Требуется определить в заданном массиве количество элементов, равных искомому числу.
В первой строке вводится количество чисел в массиве — натуральное число $N$, не превосходящее $10^5$.
Во второй строке вводятся $N$ натуральных чисел, не превосходящих $10^9$, каждое следующее не меньше предыдущего.
В третьей строке вводится количество искомых чисел $M$ — натуральное число, не превосходящее $10^6$.
В четвертой строке вводится $M$ натуральных чисел, не превосходящих $10^9$.

Для каждого запроса выведите в отдельной строке одно число: количество элементов массива, равных числу-запросу. Элементы массива нумеруются с единицы.
Если в массиве нет такого числа, выведите 0.

D: Приближённый бинарный поиск

Реализуйте алгоритм приближенного бинарного поиска.

В первой строке входных данных содержатся числа $N$ и $K$ $(0

E: Вещественный бинарный поиск

Найдите такое число $x$, что $x^2+\sqrt=C$. Найденное значение $x$ должно быть вычислено с точностью не менее $6$ знаков после точки.

В единственной строке содержится вещественное число $C$ $(1.0 \leqslant C \leqslant 10^<10>)$.

Выведите одно число — искомый $x$.

F: Корень кубического уравнения

Дано кубическое уравнение $ax^3+bx^2+cx+d=0$ $(a\ne0)$. Известно, что у этого уравнения ровно один корень. Требуется его найти.

Во входных данных через пробел записаны четыре целых числа: $-1000 \leqslant a,b,c,d \leqslant 1000$.

Выведите единственный корень уравнения с точностью не менее $4$ знаков после десятичной точки.

G: Ксерокопии

Сегодня утром жюри решило добавить в вариант олимпиады еще одну, Очень Легкую Задачу. Ответственный секретарь Оргкомитета напечатал ее условие в одном экземпляре, и теперь ему нужно до начала олимпиады успеть сделать еще $N$ копий. В его распоряжении имеются два ксерокса, один из которых копирует лист за $x$ секунд, а другой — за $y$. Разрешается использовать как один ксерокс, так и оба одновременно. Можно копировать не только с оригинала, но и с копии.

Помогите ему выяснить, какое минимальное время для этого потребуется.

На вход программы поступают три натуральных числа $N$, $x$ и $y$, разделенные пробелом ($1 \leqslant N \leqslant 2\cdot10^8, 1 \leqslant x, y \leqslant 10$).

Выведите одно число — минимальное время в секундах, необходимое для получения $N$ копий.

H: Дипломы

Вычислить наименьшую сторону квадрата, в который можно уложить без наложений $N$ одинаковых прямоугольников данного размера. Стороны прямоугольников параллельны сторонам квадрата, поворачивать прямоугольники нельзя.

Входной файл содержит три целых числа: $w,h,N$ $(1 \leqslant w,h,n \leqslant 10^9)$ — ширина и высота прямоугольника и их количество.

В выходной файл необходимо вывести ответ на поставленную задачу — длину стороны квадрата.

I: Провода

Дано $N$ отрезков провода длиной $L_1, L_2, \ldots, L_N$ сантиметров.

Требуется с помощью разрезания получить из них $K$ равных отрезков как можно большей длины, выражающейся целым числом сантиметров. Если нельзя получить $K$ отрезков длиной даже $1$ см, вывести $0$.

В первой строке находятся числа $N$ и $K$ $(1 \leqslant N \leqslant 10000, 1 \leqslant K \leqslant 10000)$. В следующих $N$ строках — $L_1,L_2,\ldots,L_N$ $(100 \leqslant L_i \leqslant 10^7)$, все числа целые, по одному числу в строке.

Требуется вывести одно число — полученную длину отрезков.

J: Коровы — в стойла!

На прямой расположены стойла, в которые необходимо расставить коров так, чтобы минимальное расcтояние между коровами было как можно больше.

В первой строке вводятся числа $N$ $(2

K: Билеты

В одной театральной кассе есть в продаже билеты любой стоимости, выражающейся натуральным числом. При покупке билетов по цене за билет от $A$ до $B$ рублей включительно нужно дополнительно оплатить сервисный сбор в размере $C$ процентов от номинальной стоимости билетов (сервисный сбор не обязательно выражается целым числом рублей, но всегда выражается целым числом копеек). При покупке билетов стоимостью менее $A$ рублей за билет, а также более $B$ рублей за билет, сервисный сбор не берется.

У вас есть $X$ рублей и вам нужно $K$ билетов одинаковой цены (цена обязательно должна выражаться натуральным числом рублей, $0$ не считается натуральным). Билеты какого самого дорогого номинала вы можете себе позволить?

Вводятся целые $A,B,C,X,K$ $(1 \leqslant A \leqslant B \leqslant 10^9,0 \leqslant C \leqslant 1000,0 \leqslant X \leqslant 10^9,1 \leqslant K \leqslant 100000)$.

Если на имеющиеся деньги невозможно приобрести ни одного билета, выведите 0. Иначе выведите натуральное число — номинальную стоимость приобретённых билетов.

L: Лифт

Высокое здание, состоящее из $N$ этажей, оснащено только одним лифтом. Парковка находится ниже фундамента здания, что соответствует одному этажу ниже первого. Этажи пронумерованы от $1$ до $N$ снизу вверх. Про каждый этаж известно количество человек, желающих спуститься на лифте на парковку. Пусть для $i$-го этажа эта величина равна $A_i$. Известно, что лифт не может перевозить более $C$ человек единовременно, а также то, что на преодоление расстояния в один этаж (не важно, вверх или вниз) ему требуется $P$ секунд. Какое наибольшее количество человек лифт может перевезти на парковку за $T$ секунд, если изначально он находится на уровне парковки?

В первой строке входного файла содержатся целые числа $N,C,P,T$. Вторая строка содержит последовательность $N$ целых чисел $A_1,A_2,\ldots,A_N$.

Ограничения: $1 \leqslant N \leqslant 100,1 \leqslant C \leqslant 10^9,1 \leqslant P \leqslant 10^9,1 \leqslant T \leqslant 10^9, 0 \leqslant A_i \leqslant 10^9$. Сумма всех значений последовательности не превосходит $10^9$.

Выведите наибольшее количество человек, которое лифт успеет перевезти на парковку.

M: Шарики на детском празднике

Организаторы детского праздника планируют надуть для него $M$ воздушных шариков. С этой целью они пригласили $N$ добровольных помощников, $i$-й среди которых надувает шарик за $T_i$ минут, однако каждый раз после надувания $Z_i$ шариков устаёт и отдыхает $Y_i$ минут.

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

В первой строке входных данных задаются числа $M$ и $N$ $(0 \leqslant M \leqslant 15000,1 \leqslant N \leqslant 1000)$. Следующие $N$ строк содержат по три целых числа — $T_i,Z_i$ и $Y_i$ соответственно $(1 \leqslant T_i,Y_i \leqslant 100,1 \leqslant Z_i \leqslant 1000)$.

Выведите в первой строке число $T$ — время, за которое будут надуты все шарики. Во второй строке выведите $N$ чисел — количество шариков, надутых каждым из приглашенных помощников. Разделяйте числа пробелами. Если распределений шариков несколько, выведите любое из них.

N: Дремучий лес (задача на тернарный поиск максимума/минимума унимодальной функции)

Чтобы помешать появлению СЭС в лагере, администрация ЛКШ перекопала единственную дорогу, соединяющую «Берендеевы поляны» с Судиславлем, теперь проехать по ней невозможно. Однако, трудности не остановили инспекцию, хотя для СЭС остается только одна возможность — дойти до лагеря пешком. Как известно, Судиславль находится в поле, а «Берендеевы поляны» — в лесу.

  1. Судиславль находится в точке с координатами $(0,1)$.
  2. «Берендеевы поляны» находятся в точке с координатами $(1,0)$.
  3. Граница между лесом и полем — горизонтальная прямая $y=a$, где $a$ — некоторое число $(0 \leqslant a \leqslant 1)$.
  4. Скорость передвижения СЭС по полю составляет $V_p$, скорость передвижения по лесу — $V_f$. Вдоль границы можно двигаться как по лесу, так и по полю.

Администрация ЛКШ хочет узнать, сколько времени у нее осталось для подготовки к визиту СЭС. Она попросила вас выяснить, в какой точке инспекция СЭС должна войти в лес, чтобы дойти до «Берендеевых полян» как можно быстрее.

В первой строке входного файла содержатся два положительных целых числа $V_p$ и $V_f$ $(1 \leqslant V_p,V_f \leqslant 10^5)$. Во второй строке содержится единственное вещественное число — координата по оси $Oy$ границы между лесом и полем $a$ $(0 \leqslant a \leqslant 1)$.

В единственной строке выходного файла выведите вещественное число с точностью не менее $8$ знаков после запятой — координата по оси $Ox$ точки, в которой инспекция СЭС должна войти в лес.

ТОП-15 алгоритмических задач, реализованных на C++

В статье собрано 15 базовых алгоритмических задач, которые должен уметь решать каждый программист. Прилагаем реализацию на C++.

алгоритмических задач

Решение алгоритмических задач с использованием различных сортировок

1. Сортировка пузырьком

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

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

На первой строке дано целое число n (1 ≤ n ≤ 1000) – количество элементов в массиве. На второй строке – сам массив. Гарантируется, что все элементы массива – различные целые числа, не превышающие по модулю 10^9.

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

Выведите одно число – количество обменов пузырьковой сортировки.

Примеры:

Входные данные Выходные данные
3
1 2 3
0
2
2 1
1
4
4 1 5 3
3

Реализация:

2. Результаты олимпиады

Во время проведения олимпиады каждый из участников получил свой идентификационный номер. Необходимо отсортировать список участников олимпиады по количеству набранных ими баллов.

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

На первой строке дано число n (1 ≤ n ≤ 1000) – количество участников. На каждой следующей строке даны идентификационный номер и набранное число баллов соответствующего участника. Все числа во входном файле целые и не превышают 10^5.

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

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

Задание 6. Бинарный поиск

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

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

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

Пример

Вход

Выход

6.2 Дипломы

Дипломы нельзя вращать и складывать друг на друга.

Алгоритм должен использовать бинарный поиск.

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

На входе 3 целых числа: n w h , где 1 ≤ n , w , h ≤ 1 0 9 1 \le n,w,h \le 10^9 1 ≤ n , w , h ≤ 1 0 9

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

На выходе одно целое число — длина стороны минимального квадратного ящика, в который можно расположить все дипломы.

Пример 0

Вход

Выход

Пример 1

Вход

Выход

Пример 2

Вход

Выход

6.3 Решение уравнения

​ = a , с точностью не менее 6 знаков после точки.

Алгоритм должен найти корни уравнения методом динарного поиска для последовательного приближения, до тех пор, пока не будет достигнута требуемая точность.

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

Вещественное число 1.0 ≤ a ≤ 1 0 1 0 1.0 \le a \le 10^10 1.0 ≤ a ≤ 1 0 1 0

Почему максимальное количество символов в типах чисел, строк на 1 меньше степени 2-ки

Отвечу анекдотом: Поймали инопланетяне русского, американца и француза. И говорят: «Отпустим того, кто назовёт такое число, которого мы не знаем». Американец подумал-подумал и говорит: «миллиард» Инопланетяне: «А, это мы знаем, столько планет в галактике» Француз подумал и говорит: «триллион» «А, ну это мы знаем. Столько звёзд на небе» Русский думает-думает и говорит: «дохрена» «Ого,- удивляются инопланетяне,- а это сколько?» «Ну вот вы приезжайте к нам в Россию, идите по железной дороге и считайте шпалы. Вот как только будет «да нахрен нам все это надо?» — так это и будет ровно половина»

Надежда Герасимова 188

Эстафета:1) Сколько максимально количество лайков вк?2) Кто первый друг?3) Кто первая подруга?4) Кто самый блиизкий из них?5) Как познакомились с 7?6) Знаешь в жизни 4?7) Напиши факты о 9) 3 факта о 11-ом

(Pascal) Найдите такое число x, что x^2+sqrtx=C, с точностью не менее 6 знаков после точки.

Входные данные
В единственной строке содержится вещественное число 1.0<=C<=10^10.

Выходные данные
Выведите одно число — искомый x.
Примеры
входные данные
2.0000000000
выходные данные
1.000000000
входные данные
18.0000000000
выходные данные
4.000000000 Guest 6

Вы хотите решить эту задачу численными методами или аналитически?

Существует ли алгоритм упрощения большого числа до нескольких простых операции, с меньшим количеством символов?

Ответа не знаю, но давайте порассуждаем вместе.

1) Снижать число символов могут унарные функции, которые растут быстрее линейных по отношению к аргументу (например, факториал).

2) Функция двух и более аргументов должна рости быстрее, чем умножение: любая запись умножения длиннее, чем результат (степени, стрелки Кнута, функция Аккермана, …).

При этом, как вы сами показали, ни от сложений, ни от умножений отказаться нельзя. Вряд ли для числа 2^65536+6 можно придумать запись, короче чем A(4,2)+9 или 2↑↑5+6 .

Таким образом, есть функции, «ухудшающие» запись, есть «улучшающие». Результат — это композиция этих функций. Дальше исключтельно рассуждения, не подтверждённые доказательствами �� Если отказаться от применения ухудщающих операций мы не можем, то пространство поиска у нас не выпуклое (иногда лучше декомпозировать число как сумму, чтобы потому получить что-то типа 2↑↑↑↑5+8^13). Кажется, поэтому ни динамика, ни DnC, ни жадный алгоритм нам не помогут. Скорее всего решение будет вполне себе экспоненциальным. Например, обход по дереву операций с отсечениями. Кажется, что задав изначальный набор унарных и бинарных операций, такой метод написать совсем несложно, но увы, это будет экспонента.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *