Полуинварианты это, как инваринты только пополам. На самом деле полуинвариантом считается характеристика которая, хоть и не остается постоянной, но изменяется контролируемым образом. Гораздо понятнее на примере задачи. Условие: На длинной скамейке сидели мальчик и девочка. К ним по одному подошли ещё 20 детей, и каждый из них садился между какими-то двумя уже сидящими. Назовем девочку отважной, если она садилась между двумя соседними мальчиками, а мальчика - отважным, если он садился между двумя соседними девочками. Когда все сели, оказалось, что мальчики и девочки сидят на скамейке, чередуясь. Сколько из них были отважными? Решение: Посмотрим на количество пар сидящих рядом мальчика с девочкой. Изначально оно равно 1. Заметим, что если мальчик сел между двумя мальчиками, то количество таких пар не изменилось. Если же он сел между мальчиком и девочкой, то он одну такую пару «разрушил» и одну «создал», то есть опять же количество таких пар не изменилось. И только в случае, если мальчик