Посмотрел
жалобы школьника на ЕГЭ. Да, с некоторыми его рассуждениями я не согласен, однако отрадно видеть, что дофига времени прошло, но в данной области ничего не поменялось. Это всё тот же совершенно бессмысленный ритуал, который нужен исключительно для того, чтобы какие-то высокопоставленные работники системы образования, которым всё пофиг,
(
Read more... )
Comments 195
Reply
Reply
Reply
Reply
Reply
…вручную
> Программисты, которые такой техникой не владеют
Программисты, которые владеют техникой, вообще не пишут. Они качают библиотеку, где это уже написано, находят соответствующую функцию и вызывают её.
> А Вы предлагаете перебирать все пути, это совсем другая задача.
Внезапно, задача перебора всех путей решается за то же время, за которое решается задача подсчёта всех путей древовидного направленного графа и имеет сложность сильно меньше, чем O(n^2). А именно O(n). Но для этого, конечно, надо уметь программировать.
> Задачи на удивление адекватные и, что характерно, именно по информатике
Всегда интересно посмотреть на закономерные результаты школьного обучения информатике.
Reply
Я не знаю, что имеется в виду под "древовидным", но в любом случае графы тех типов, которые на рисунке, к ним не относятся. Перечитайте мое исходное сообщение: не так уж сложно нарисовать граф с примерно 100 вершинами и ответом в виде триллиона путей. Вас не настораживает, что 100^2 сильно меньше триллиона? Насчет того, что можно подсчитать ответ (но никак не перебрать пути) быстрее, чем за O(n^2), я верю слабо, если нет дальнейших ограничений на число ребер. За O(n+m), где n --- число вершин, m --- число ребер, верю (в конце концов, задача похожа на топологическую сортировку).
Reply
Reply
A[i], A[i-1] = A[i-1], A[i]
;)
Reply
Reply
Reply
Reply
Reply
+честно говоря, я не очень представляю как отвечать на вопрос о графах. предполагается написать программу, или вот так буквально написать сколько путей? их вручную посчитать можно даже не зная алгоритма - тут помоему и так все очевидно.
Reply
Reply
print N
и все. задача решена.
Это вероятно не сочтут за правильное решение, но по факту оно именно таким и будет
Reply
Я думаю, что имелось в виду именно выдать ответ (и если проверка не автоматическая, то еще и какой-то комментарий, как он получен). В данном случае "динамическое программирование" сводится к треугольнику Паскаля: в каждую вершину пишем сумму чисел, написанных на началах входящих в нее ребер, в предположении, что там они уже расставлены. Можно это так и не называть, конечно, а сказать, что это рекурсия или индукция или еще что-нибудь.
Reply
Leave a comment