Вы можете решить эту проблему только по экспоненциальной сложности, но это не так плохо, как кажется, потому что на практике вы сможете избежать многих плохих решений и, таким образом, значительно сократить время работы алгоритма.
Короче говоря, вы должны запустить DF-поиск по узлу и попытаться закрасить столько узлов, сколько сможете.Если вы находитесь на узле с соседними черными узлами, этот узел может быть только белым.Продолжайте делать это для каждой возможности окраски определенного узла.
Если вы не можете понять это, то проверьте эти два фрагмента кода, которые я нашел, прибегая к поиску имени проблемы: one и два .Авторы говорят, что они получают AC, но я не проверял их.Однако они выглядят правильно.