В строке есть N учеников. Мы хотим взять лучшее фото. Фото считается лучшим, когда максимальное количество студентов удовлетворено. Студент удовлетворен, если он является правым соседом своего лучшего друга. У каждого ученика есть только один лучший друг. Вы должны найти количество довольных учеников в лучшей фотографии и количество лучших лучших фотографий.
Перестановка на графиках
подход:
.
- каждый узел находится в цикле. (каждый узел имеет ровно один входящий и один исходящий край). Здесь мы можем удовлетворить все узлы, кроме одного (крайний левый узел). Таким образом, удовлетворенными узлами являются N-1, а разными вариантами являются N
, которые имеют по крайней мере один входящий фронт, могут удовлетворять точно одному узлу. Таким образом, легко вычислить количество удовлетворенных узлов. Сделаем массив B, где B [i] - количество входящих ребер i. Тогда другой способ удовлетворить максимальное количество узлов - это продукт B_s. Но есть некоторые варианты «BAD»,, где все узлы цикла удовлетворены. Но мы можем легко вычесть варианты «BAD». В вариантах «BAD» для узлов цикла мы точно знаем, кого они удовлетворяют. Такие разные варианты будут:
B [K1] * B [K2] .... B [Kn] - B [P1] * B [P2] .... B [Pm]
где K - это массив узлов в компоненте (который имеет по крайней мере 1 входящее ребро), а P - это массив узлов, которые не находятся в цикле этого компонента (которые имеют по крайней мере 1 входящий край).
Я не мог понять концепцию Bad вариантов, почему мы их вычитаем.
Просьба Объяснить и может ли я найти полезные ссылки для этого типа проблем
Существует, по-видимому, некоторая информация, отсутствующая между утверждением проблемы и подходами: откуда взялись эти графики и что они представляют? –
[Ссылка на проблему] (https://www.hackerrank.com/contests/countercode/challenges/best-photo) – Sunny
Я не понимаю ваш подход. Если все узлы имеют степень 1 и степень 1, тогда B [i] всегда 1. Поэтому он не нужен. С этого момента я не следую дискуссиям. – tucuxi