CSES - Kaikki puut

Tehtäväsi on toteuttaa luokka, jonka avulla pystyy lisäämään kaaren verkkoon sekä laskemaan, montako erilaista virittävää puuta verkolle voidaan muodostaa.

Voit olettaa, että verkossa on enintään 5 solmua ja siihen lisätään enintään 10 kaarta. Jokainen kaari on suuntaamaton ja verkossa ei ole kahta samanlaista kaarta.

Toteuta tiedostoon alltrees.py luokka AllTrees, jossa on seuraavat metodit:

  • konstruktori, jolle annetaan solmujen määrä
  • add_edge lisää verkkoon kaaren
  • count ilmoittaa virittävien puiden määrän
class AllTrees:
    def __init__(self,n):
        # TODO

    def add_edge(self,a,b):
        # TODO

    def count(self):
        # TODO

if __name__ == "__main__":
    a = AllTrees(3)
    a.add_edge(1,2)
    print(a.count()) # 0
    a.add_edge(1,3)
    print(a.count()) # 1
    a.add_edge(2,3)
    print(a.count()) # 3