Немного предыстории: Это было очень давно, так как я закодированы в C (год скакать обратно в это действительно подавляющееРасчет множества компьютеров, зараженных вредоносными программами, в сети коммуникационных компьютеров?
Мне нужен совет по реализации Может кто-нибудь может объяснить, как вы... будет идти о разработке этого я понять концепцию проблемы, но чувствовать себя потерянный о том, как даже начать реализацию
Вот ограничение:?.
Входные (с учетом алгоритма):
количество компьютеров в сети, обозначается как N. Предположим, что компьютеры названы 1, 2 .. до N.
Бревно, состоящий из списка троек (C1, C2, т). В каждой тройке C1 и C2 являются именами компьютеров, а t является меткой времени. Если в логе появляется (C1, C2, t), то это означает, что C1 и C2 обмениваются друг с другом в момент времени t. (t всегда будет целым числом = = 0)
Существует компьютер, CBad, который является именем компьютера, на котором впервые было обнаружено вредоносное ПО. Существует также временная метка tBad, в которой вредоносное ПО было введено в CBad.
Механика инфекции:
Если на компьютере, говорят С0, заражен и другой компьютер, С1 связывается с С0 в момент времени Т, то С будет также заражаются. (и он заразится в момент времени t.)
Если компьютер заражен в момент времени t, он заражен в любое время t1> = t (другими словами, он считается зараженным в этой точке и любым указать впоследствии)
Ожидаемый результат здесь является TXT-файл отображает список зараженных компьютеров в результате CBad (наш пациент 0) число инфицированных в момент времени ТБАД.
Мы обсуждали минимальные алгоритмы остовного дерева (в частности Prims и Kruskals). Я уверен, что он хочет использовать один из них при решении этой проблемы.
Мысли до сих пор: Моя теория до сих пор заключается в том, что в каждом списке триплетов C1 и C2 представляют две вершины, составляющие ребро. И временная метка t представляет стоимость/вес/что-то из этого края. Как-то мне нужно построить связанный, неориентированный граф, а затем запустить (алгоритм Крускаля?), Чтобы найти множество? ... Я просто не знаю. Здесь я чувствую себя идиотом. :(
+1 точно, что я имел в виду, чтобы написать. примечание стороны: направление заражения в вопросе другое, как в 'if (C2 in S) S.Add (C1) '. но если инфекции являются двусторонними? », тогда вам нужны оба. –