Dado é um dag. Você deseja rotular cada nó por quantos nós são acessíveis a partir dele. é um limite superior trivial; é um limite inferior (eu acho). Existe um algoritmo melhor? Há razões para acreditar que o limite inferior pode ser melhorado (relacionado: o que exatamente se sabe sobre limites inferiores para fechamento transitivo)?
Motivação: tive que fazer isso algumas vezes enquanto representava as fórmulas folclóricas como adagas.
Edit: Observe que simplesmente fazer conta caminhos , nós não alcançáveis . (Adicionei isso porque, aparentemente, muitas pessoas pensavam que essa solução simples funcionaria com os votos que eu vi em uma resposta agora excluída.) De fato, esse problema aparece precisamente quando você deseja fazer algo interessante com partes 'compartilhadas', nós alcançáveis por mais de um caminho. Além disso, digo dag, porque se eles forem resolvidos, então é fácil resolver dígrafos.