Sabemos que hay "unión y búsqueda" para conjuntos disjuntos. http://en.wikipedia.org/wiki/Union_findoperación inversa para "Unir y encontrar"
¿Pero cómo hacer la operación inversa? Considere un conjunto con N nodos conectados con bordes E (que de hecho es un gráfico). Y en cada paso queremos eliminar algunos bordes y verificar si esta operación de eliminación lleva a tener otro conjunto disjunto. ¿Es posible hacerlo rápidamente como en "Union and find"?
P.S esto no es tarea, tenemos vacaciones :)
Gracias por el enlace. Solo puedo encontrar artículos para comprar en ACM. ¿No se pudo encontrar información sobre TopCoder, ningún enlace directo? :) – Spinach