Instead of just looking at neighboring sites, look at sites a distance away (this is fast on a hypercube).
If the label is the same at any point, put a connection between the sites. If there are connections , make a connection .
Now changes in the labels can be propagated long distances in one iteration. Expect labeling in iterations, each of which takes multigrid steps, each taking time on hypercube. So time complexity of .