ekb676
?>

На 150 внимание аккаунты пользователей, публикующих "спам" или "ответы не в тему" в моих – подвергаются жёсткой проверке, чистке, и, в конечном счёте, я стараюсь добиваться удаления таких аккаунтов. аккаунты двух пользователей уже были удалены только на этом все творческие люди – welcome! : : : : : : для работы некоторого облачного сервиса, на высокоскоростном ssd-raid диске выделяется пространство размером 4 гб. блок данных размером в 4 кб считается минимальным, так что если в какой-то из байтов такого блока будет записана какая-то информация – блок считается полностью занятым. блоки данных пронумерованы пятёрками шестнадцатеричных чисел от нуля до x. в эти блоки данных некоторым образом записывают разнородную информацию: это может быть текстовый, графический, мультимедийный и пр. типы данных. количество различных типов данных может достигать нескольких тысяч. каждому типу данных однозначно сопоставлено целое число, которое записано в первые два байта каждого блока данных. известно, что когда несколько подряд идущих блоков данных содержат однотипную информацию – сервис работает быстрее. подпоследовательности нескольких подряд идущих блоков однотипной информации удобно называть кусками данных. чем чаще встречаются такие скомпонованные подпоследовательности (куски данных) – тем выше скорость работы всего сервиса. и наоборот, когда все блоки данных содержат тип данных, отличный от типа данных в соседних блоках – сервис работает с наименьшей скоростью, при этом, очевидно, количество кусков данных равно числу 4-килобайтных блоков. для текущей оценки потенциальной производительности сервиса, специальный внутренний модуль сервиса (свмс) после каждой перезаписи данных определяет состояние их размещения, подсчитывая число w кусков данных в пространстве дисковой памяти, выделенной под сервис. когда число w достигает некоторого порогового значения (которое настраивает системный администратор) – сервис дожидается времени, когда им пользуется минимальное число пользователей и производит высокоуровневую дефрагментацию, минимизируя число w кусков данных, так чтобы сервис снова работал максимально быстро. необходимо составить текстовое описание алгоритма свмс, который мог бы производить не дольше чем за 10 секунд – миллион оценок числа w кусков данных. предполагается, что под работу свмс выделяется ресурс производительности – не более 100 млн. операций в секунду и 200 мб оперативной памяти. для тестирования программы, написанной по алгоритму, который необходимо представить в ответе к , заказчик свмс будет подавать на его вход некоторую стартовая конфигурацию размещённых данных в виде последовательного перечисления типов данных, заполняющих все 4-килобайтные блоки в 4-гигабайтном пространстве дисковой памяти, а кроме того – тестовый поток из одного миллиона описаний перезаписи блоков, в виде строк, в каждой из которых будут содержаться два числа: первое – шестнадцатеричный адрес блока данных в формате x, и второе – номер типа данных (двухбайтное целое число), которые записываются в 4-килобайтный блок с указанным в первом числе адресом. процесс записи данных в 4-килобайтные блоки можно считать почти мгновенным, к тому же это неизбежные и неустранимые затраты, так что время записи вообще не нужно учитывать при составлении алгоритма. главная свмс – постоянная переоценка числа w кусков данных. формат описания алгоритма должен носить максимально абстрактный характер, т.е. не подразумевается подробное изложение преобразования шестнадцатеричных чисел и т.п. тем не менее, алгоритм должен решать поставленную в условиях жёстко оговоренных параметров времени/скорости/производительности. для описания алгоритма было бы удобно использовать следующие обозначения: {x} – множество адресов блоков данных; y[x] – тип данных в адресуемом блоке; w[i] – оценка числа кусков после i-ой перезаписи. *** переоценка числа w кусков данных путём полного перебора заголовков блоков данных после каждой перезаписи, очевидно, потребовала бы триллион операций, т.е. около 3 часов – что неприемлемо по требованию заказчика. *** не забудьте разместить полную копию своего решения в дубль- для получения обещанных 150 . внимание аккаунты пользователей, публикующих "спам" или "ответы не в тему" в моих – подвергаются жёсткой проверке, чистке, и, в конечном счёте, я стараюсь добиваться удаления таких аккаунтов. все творческие люди – welcome!

Информатика

Ответы

sjmurko
Предлагается хранить типы блоков в массиве. Каждый элемент - 2Б, количество элементов - 2^20 => всего требуется 2МБ.

При перезаписи блока и очередной переоценке необходимо учитывать типы данных в блоке до перезаписи (T0), после перезаписи (T1) и в соседних блоках (TL, TR).

Если T0 = T1, то количество кусков данных не изменяется, т.е. W[i+1] = W[i]
TL = T0 = TR <> T1 -> W[i+1] = W[i] + 2
TL = T1 = TR <> T0 -> W[i+1] = W[i] - 2
TL = TR, T0 <> TL, T1 <> TL -> W[i+1] = W[i]

Далее рассмотрим случаи, когда TL <> TR
(TL = T0, TR = T1) или (TR = T0, TL = T1) -> W[i+1] = W[i]
(TL = T0, TR <> T1) или (TR = T0, TL <> T1) -> W[i+1] = W[i] + 1
(TL = T1, TR <> T0) или (TR = T1, TL <> T0) - > W[i+1] = W[i] - 1

Если все четыре типа не совпадают, то W[i+1] = W[i]
Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.

Вроде все?
olimov

#include <iostream>

int gg(int k, int p, double m)

{

p = (k >= p) ? p : p / k;

return (m * 2 * p);

}

int main()

{

int k, p;

double m;

std::cout << "Сколько котлет можно одновременно положить на сковороду ? ";

std::cin >> k;

std::cout << "Сколько минут жарится одна сторона котлеты ? ";

std::cin >> m;

std::cout << "Сколько котлет вы будете жарить ? ";

std::cin >> p;

std::cout << p << " котлет пожарятся с двух сторон минимум за " << gg(k, p, m) << " минут";

}

Сергей_Крутикова114
Имеется всего 6 вариантов как назначить бакам целевой мусор. Например, в 1-й бак собираем стекло, во 2-й бак бумагу, в 3-й бак жесть. Другой вариант: в 1-й стекло, 2-й жесть, 3-й бумага. Всего имеется шесть таких вариантов.

Можем тупо перебрать эти варианты сборки из исходных данных, и увидеть который даст меньшую сумму перекладок. Можешь сделать это самостоятельно, а мне лень. 

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

А что такое предметы, уже находящиеся в своих баках? Это значит, что для данного из шести вариантов наборов баков имеется только одно число в своей строке таблицы, которое указывает на уже лежащий предмет. Например, если баки назначаем так: стекло, бумага, жесть, то из общей суммы всех предметов задачи нужно вычесть числа 52, 83, 75 - то есть лежащие на главной диагонали таблицы. 

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

Руководствуясь этим принципом, нужно найти такую комбинацию выбора трёх чисел из заданной таблицы, чтобы они все три одновременно принадлежали как разным строкам, так и разным столбцам; и при этом сумма выбранных чисел была бы максимальной из всех (а их 6) вариантов выбора.

Мне неохота перебирать все эти комбинации, сделай сам. Но навскидку кажется, что если из первого столбца выберу максимальное число (98), из второго столбца уже выбранную строку (вторую) трогать нельзя, поэтому среди верхнего (58) и нижнего (83) выберу наибольшее, и это 83. Таким образом, вторая и третья строки заняты. Из третьего столбца остаётся, что можно взять только число из первой строки, и это 64.

Сумма 98+83+64 = 245 - это число предметов, которые не нужно перекладывать, они сразу лежат в своих баках.

Общее число предметов в задаче - сумма всех 9 чисел таблцы, у меня получилась 693.

ответом будет число перекладок, равное общему числу предметов, минус которые не надо перекладывать. То есть 693 - 245 = 448.

Думаю что это и есть ответ. Но лучше проверь остальные 5 вариантов назначения баков своим видам мусора, и получишь ещё пять чисел. ответом будет наименьшее из них. Чисто нвскидку мне кажется, что это и будет 448.    

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

На 150 внимание аккаунты пользователей, публикующих "спам" или "ответы не в тему" в моих – подвергаются жёсткой проверке, чистке, и, в конечном счёте, я стараюсь добиваться удаления таких аккаунтов. аккаунты двух пользователей уже были удалены только на этом все творческие люди – welcome! : : : : : : для работы некоторого облачного сервиса, на высокоскоростном ssd-raid диске выделяется пространство размером 4 гб. блок данных размером в 4 кб считается минимальным, так что если в какой-то из байтов такого блока будет записана какая-то информация – блок считается полностью занятым. блоки данных пронумерованы пятёрками шестнадцатеричных чисел от нуля до x. в эти блоки данных некоторым образом записывают разнородную информацию: это может быть текстовый, графический, мультимедийный и пр. типы данных. количество различных типов данных может достигать нескольких тысяч. каждому типу данных однозначно сопоставлено целое число, которое записано в первые два байта каждого блока данных. известно, что когда несколько подряд идущих блоков данных содержат однотипную информацию – сервис работает быстрее. подпоследовательности нескольких подряд идущих блоков однотипной информации удобно называть кусками данных. чем чаще встречаются такие скомпонованные подпоследовательности (куски данных) – тем выше скорость работы всего сервиса. и наоборот, когда все блоки данных содержат тип данных, отличный от типа данных в соседних блоках – сервис работает с наименьшей скоростью, при этом, очевидно, количество кусков данных равно числу 4-килобайтных блоков. для текущей оценки потенциальной производительности сервиса, специальный внутренний модуль сервиса (свмс) после каждой перезаписи данных определяет состояние их размещения, подсчитывая число w кусков данных в пространстве дисковой памяти, выделенной под сервис. когда число w достигает некоторого порогового значения (которое настраивает системный администратор) – сервис дожидается времени, когда им пользуется минимальное число пользователей и производит высокоуровневую дефрагментацию, минимизируя число w кусков данных, так чтобы сервис снова работал максимально быстро. необходимо составить текстовое описание алгоритма свмс, который мог бы производить не дольше чем за 10 секунд – миллион оценок числа w кусков данных. предполагается, что под работу свмс выделяется ресурс производительности – не более 100 млн. операций в секунду и 200 мб оперативной памяти. для тестирования программы, написанной по алгоритму, который необходимо представить в ответе к , заказчик свмс будет подавать на его вход некоторую стартовая конфигурацию размещённых данных в виде последовательного перечисления типов данных, заполняющих все 4-килобайтные блоки в 4-гигабайтном пространстве дисковой памяти, а кроме того – тестовый поток из одного миллиона описаний перезаписи блоков, в виде строк, в каждой из которых будут содержаться два числа: первое – шестнадцатеричный адрес блока данных в формате x, и второе – номер типа данных (двухбайтное целое число), которые записываются в 4-килобайтный блок с указанным в первом числе адресом. процесс записи данных в 4-килобайтные блоки можно считать почти мгновенным, к тому же это неизбежные и неустранимые затраты, так что время записи вообще не нужно учитывать при составлении алгоритма. главная свмс – постоянная переоценка числа w кусков данных. формат описания алгоритма должен носить максимально абстрактный характер, т.е. не подразумевается подробное изложение преобразования шестнадцатеричных чисел и т.п. тем не менее, алгоритм должен решать поставленную в условиях жёстко оговоренных параметров времени/скорости/производительности. для описания алгоритма было бы удобно использовать следующие обозначения: {x} – множество адресов блоков данных; y[x] – тип данных в адресуемом блоке; w[i] – оценка числа кусков после i-ой перезаписи. *** переоценка числа w кусков данных путём полного перебора заголовков блоков данных после каждой перезаписи, очевидно, потребовала бы триллион операций, т.е. около 3 часов – что неприемлемо по требованию заказчика. *** не забудьте разместить полную копию своего решения в дубль- для получения обещанных 150 . внимание аккаунты пользователей, публикующих "спам" или "ответы не в тему" в моих – подвергаются жёсткой проверке, чистке, и, в конечном счёте, я стараюсь добиваться удаления таких аккаунтов. все творческие люди – welcome!
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Svetlaru70
nikolavlad
veraplucnika
viktort889841
Vladimirovich58
horina12
tatyana58
zybin41iz81
Vasilevich Fokin
Voshchula David393
arevik2307
Aleksandrova Zhanna1250
grishin
director3
lagutkins