Мне задали сложный вопрос. Данный: A = [a1, a2,... an] (список положительных целых чисел с длиной "n" ) r (положительное целое число)
Найдите список операторов {*, +} O = [o1, o2,... on-1] так что, если мы поместим эти операторы между элементами "А", получившееся выражение будет оцениваться как "г". Требуется только одно решение.
Так, например, если A = [1,2,3,4] r = 14 тогда O = [*, +, *]
Я реализовал простое рекурсивное решение с некоторой оптимизацией, но, конечно, это экспоненциальное время O (2 ^ n), поэтому для ввода с длиной 40 он работает целую вечность.
Я хотел спросить, знает ли кто-нибудь из вас субэкспоненциальное решение?
Обновление Элементы A находятся между 0-10000, r может быть сколь угодно большим