Räkna noder

Time: 4.0 s     Memory: 1024 MB
  • Givet är ett träd med $N$ noder numrerade mellan $0$ och $N-1$. Du ska hantera följande fråga:

    • Givet noden $u$ och heltalet $d$, räkna antalet unika noder du kan nå om du startar på $u$ och korsar som mest $d$ stycken kanter.

    Indata

    Den första raden innehåller heltalen $N, Q$ ($1 \leq N,Q \leq 2*10^5$), antalet noder och antalet frågor.

    De följande $N-1$ rader kommer vardera innehålla heltalen $a$ och $b$ ($0 \leq a,b \leq N-1$), vilket betyder att det finns en kant mellan nod $a$ och $b$. Dessa kanter är garanterade att forma ett träd.

    Därefter följer $Q$ rader som innehåller en fråga vardera.

    Varje fråga består av heltalen $u$ och $d$ ($0 \leq u,d \leq N-1)$, startnoden och antalet kanter du får korsa.

    Utdata

    För varje fråga, skriv ut antalet unika noder du kan nå från $u$ om du korsar som mest $d$ kanter.

    Poängsättning

    Din lösning kommer att testas på flera testfall. För att lösa problemet måste din lösning lösa alla testfallen korrekt.

    Sample Input 1 Sample Output 1
    5 5
    0 1
    1 2
    2 3
    2 4
    0 0
    0 1
    0 2
    2 1
    2 2
    
    1
    2
    3
    4
    5
    
Centroid decomposition
  •  
  • To solve the problems, you can either start a virtual contest or register for regular practice. A virtual contest simulates a participation in the original contest with a duration of 1 day, while regular practice lets you submit solutions without any constraints.

    You must log in to register.
  • Close Node
  • Count Nodes
  • Faraway Node
You must log in to submit solutions to the problem.
{"contest_start_timestamp": null, "contest_duration": 86400, "contest_started": true, "contest_ended": true, "flexible_start_window_end_time": null, "only_virtual": true}