Может ли кто-нибудь подсказать мне, как решить этот вопрос программирования? Это похоже на проблему DP, на которую я не смог найти ответ.
Есть реклама 'n'. Каждое объявление имеет значение эффективности, связанное с ним, которое задается в массиве размером «n» в формате [v1, v2,…, vn], где «v1» - это значение эффективности первого объявления, «v2» - этозначение эффективности второго объявления и т. д. Показ, на котором будут показываться эти объявления, имеет длину 'm' (начиная с 0 до m), а время показа рекламы указывается в формате [(a1, b1), (a2, b2),…, (An, bn)], где i-й кортеж в массиве обозначает время i-го объявления в формате (start_time, end_time). Обратите внимание, что любые «ai» и «bi» не могут быть меньше 0 и не могут быть больше «m». Когда вы решите показать объявление, вы не сможете показать другое объявление в течение 4 минут после его окончания. Таким образом, если вы выбрали показ объявлений с временными интервалами (2, 4), то вы не сможете показывать другое объявление до 9, поэтому следующим объявлением не может быть (8, 10), но это может быть (9, 12). Вы должны выбрать объявления для показа аудитории таким образом, чтобы максимально увеличить сумму значений эффективности объявлений с учетом вышеуказанных ограничений. Например, если «m» равно 20, а время показа объявлений составляет [(2, 3), (6, 9), (10, 12), (12, 13), (14, 17)] иЗначения эффективности - [3, 9, 10, 6, 7], тогда вы можете показывать объявления 2 и 5 (индексация по одному) и иметь значение эффективности 16, что является максимумом, который вы можете получить с учетом ограничений.