A. Треугольники
На плоскости расположено N невырожденных треугольников. Найдите точку плоскости, которая покрывается наибольшим количеством треугольников. Если таких точек несколько, достаточно найти любую из них. Точка покрывается треугольником, если она лежит внутри него, либо на его границе. Треугольник задается координатами своих вершин. Ограничение на N поставьте сами.
B. Волшебные вектора
Назовем упорядоченный по неубыванию набор из N натуральных чисел волшебным N-вектором, если сумма этих чисел равна их произведению. Задано число N. Найдите все волшебные N-вектора.
Например, существует 3 волшебных 5-вектора:
1 1 1 2 5
1 1 1 3 3
1 1 2 2 2
Ограничение на N поставьте сами.
C. Интервалы
Петя совершил хакерский налет на сервер компании Macrohard, в результате чего ему достался объектный файл, в котором содержится скомпилированный код некоторой функции secret. Эта функция берет в качестве параметра целое число и возвращает 0 либо 1.
Петя решил исследовать эту функцию и выяснить, что она делает. С этой целью он хочет вызвать ее для всех чисел от 1 до 106 и те значения параметра, на которых функция выдает 1 вывести на экран. Однако, поскольку количество различных чисел, которые придется вывести на экран может оказаться очень велико, то Петя хочет выводить их в виде интервалов подряд идущих чисел, причем если интервал имеет длину 1, то выводить только одно число. Например, вместо
1,3,4,5,6,7,8,10,12,20,21,22,23,24,…
Петя хочет выводить
1,3-8,10,12,20-24,…
Напишите программу, которая выведет значения параметра, на которых функция выдает 1, в нужном формате. Считайте, что Ваш язык программирования дополнен функцией secret:
function secret(x: longint): integer;
int secret(long int x);
function secret(x as long) as integer
Помните, что компьютер, на котором Петя запустит свою программу довольно слабый, и у него мало оперативной памяти, поэтому хранить все значения, на которых функция вернет 1 в памяти даже в виде интервалов может оказаться невозможным.
D. Наименьшее кратное подмножество
Задано множество из N натуральных чисел: . Требуется найти такое минимальное положительное M, чтобы можно было выбрать M чисел из заданного множества так, чтобы их сумма делилась на N. Например, для множества из пяти элементов
1 3 1 7 1
M=2, т.к. можно выбрать 2 числа (3 и 7), сумма которых 3+7=10 делится на N=5, а одно число кратное 5 выбрать нельзя.
Задано число N1000 и числа . Найти соответствующее минимальное положительное M, либо выяснить, что такого M не существует, т.е. нельзя выбрать из заданного множества несколько чисел, чтобы их сумма делилась на N.
E. K двоичных единиц
Найдите количество чисел Z, удовлетворяющих неравенству , таких, что в записи двоичного разложения Z используется ровно единиц. ( , ) Например, если A=10; B=20; K=2, то таких чисел 5 (это числа 10=10102; 12=11002; 17=100012; 18=100102; 20=101002).
Помните, что перебор всех чисел неэффективен, так как при данных ограничениях занимает слишком много времени.
F. Частотный анализ
Дан текст, в котором встречаются слова, состоящие из букв русского и латинского алфавитов и цифр, знаки препинания, пробелы и переводы строк. Требуется найти количество вхождений каждого слова в этот текст и вывести слова отсортированными по невозрастанию этого количества. Для каждого слова при выводе в скобках указать количество его вхождений в текст. Например, для текста
один, два - это 2, три один два, много слов один
надо вывести
один(3) два(2) это(1) 2(1) три(1) много(1) слов(1)
Слова, которые встречаются в тексте одинаковое количество раз, должны быть выведены в том порядке, в котором они впервые встречаются в тексте.
другие задачи и коментарии здесь------------>
_________Microsoft_Word.doc ( 68.5 килобайт )
Кол-во скачиваний: 2097