Tag dynamic programming