Universal Cup Judging System

Universal Cup

Time Limit: 2.0 s Memory Limit: 1024 MB Total points: 100 Hackable ✓
Statistics

Annetaan kokonaisluvut $n, m > 0$ sekä kokonaisluvut $a_1, a_2, \dots, a_n \in \{-1, 0, 1, \dots, m - 1\}$. Muodosta $n$-solmuinen puu $T$, jonka solmujoukko on $V = \{v_1, v_2, \dots, v_n\}$ ja joka toteuttaa seuraavan ehdon: jokaiselle solmulle $v_i$, jolle $a_i \ne -1$, asteiden $\deg_T(v_i)$ jakojäännöksen luvulla $m$ jaettaessa täytyy olla $a_i$. Jos $a_i = -1$, solmun $v_i$ asteelle ei ole rajoituksia.

Syöte

Syötteen ensimmäinen rivi sisältää kokonaisluvun $t$, testitapausten lukumäärän ($1 \le t \le 5 \cdot 10^5$). Jokaiselle testitapaukselle:

Ensimmäinen rivi sisältää kaksi kokonaislukua, $n$ ja $m$, jotka ilmaisevat puun solmujen lukumäärän ja jakajan ($1 \le n \le 5 \cdot 10^5$; $1 \le m \le 2 \cdot 10^9$).

Seuraava rivi sisältää $n$ kokonaislukua $a_1, a_2, \dots, a_n$, jotka ilmaisevat vaaditut jakojäännökset ($-1 \le a_i < m$).

Lukujen $n$ summa yli kaikkien testitapausten ei ylitä arvoa $5 \cdot 10^5$.

Tuloste

Jokaiselle testitapaukselle, jos tällainen $n$-solmuinen puu on olemassa, tulosta "YES" (kirjainkoosta riippumatta) ja sen jälkeen $n - 1$ riviä, joista jokaisella on kaksi kokonaislukua, jotka ilmaisevat kunkin kaaren päätepisteet. Muussa tapauksessa tulosta "NO" (kirjainkoosta riippumatta).

Esimerkki

Syöte

6
1 5
0
2 3
1 1
5 4
0 1 1 1 1
6 2
1 0 0 0 0 1
3 2
1 1 1
4 10
3 3 1 1

Tuloste

YES
YES
1 2
YES
1 2
1 3
1 4
1 5
YES
1 2
2 3
3 4
4 5
5 6
NO
NO

Huomautus

Ensimmäisessä testitapauksessa meitä pyydetään rakentamaan puu, jossa on $n = 1$ solmu, $m = 5$ ja asteiden jakojäännöstaulukko $b = [0]$. Kun solmuja on vain yksi, kaaria ei voi olla, joten mahdollisia puita on täsmälleen yksi: yksittäinen solmu, jonka aste on $0$. Koska $0 \bmod 5 = 0$, se täyttää vaatimuksen; vastaus on siis "YES".

Toisessa testitapauksessa tarvitsemme puun $n = 2$ solmulle, kun $m = 3$ ja jakojäännökset ovat $b = [1, 1]$, mikä tarkoittaa, että molempien asteiden on oltava kongruentteja luvun $1$ kanssa modulo $3$. Kahdella solmulla on vain yksi puu: yksittäinen kaari $1-2$. Sen asteet ovat $(1, 1)$ ja todellakin $1 \bmod 3 = 1$, joten vastaus on "YES", ja "1 2" on kelvollinen tuloste.

Kolmannessa testitapauksessa tarvitsemme $n = 5$, $m = 4$ ja jakojäännökset $b = [0, 1, 1, 1, 1]$: ensimmäisen solmun asteen on oltava jaollinen luvulla $4$, kun taas muiden neljän solmun on toteutettava ehto $\text{degree} \equiv 1 \pmod 4$. Luonnollinen rakenne on tähtiverkko, jonka keskus on solmu $1$: yhdistetään $1$ jokaiseen muuhun solmuun. Tällöin $\deg(1) = 4$ ja $4 \bmod 4 = 0$, kun taas jokaisella solmuista $2, 3, 4, 5$ on aste $1$ ja $1 \bmod 4 = 1$. Vastaus on siis "YES", ja kaaret "1 2", "1 3", "1 4", "1 5" kelpaavat.

Neljännessä testitapauksessa tarvitsemme puun, jossa $n = 6$, $m = 2$ ja jakojäännökset $b = [1, 0, 0, 0, 0, 1]$, eli päätepisteillä on oltava pariton aste ja neljällä keskimmäisellä solmulla parillinen aste. Modulo $2$ tämä on pelkkä pariteettirajoite. Yksinkertainen polku $1-2-3-4-5-6$ sopii täydellisesti: solmujen $1$ ja $6$ aste on $1$ (pariton), ja solmujen $2, 3, 4, 5$ aste on $2$ (parillinen). Vastaus on siis "YES", ja polun kaaret ovat oikein.

Viidennessä testitapauksessa meitä pyydetään rakentamaan verkko (ja siten erityisesti puu) $n = 3$ solmulle, kun $m = 2$ ja $b = [1, 1, 1]$, joten jokaisella solmulla on oltava pariton aste. Tämä on mahdotonta: jokaisessa suuntaamattomassa verkossa paritonasteisten solmujen lukumäärä on aina parillinen, joten kolmea paritonta astetta ei voi esiintyä millään kaarijoukolla. Tuomio on siis "NO".

Kuudennessa testitapauksessa meillä on $n = 4$, $m = 10$, $b = [3, 3, 1, 1]$. Koska $m > n - 1 = 3$, jakojäännös modulo $10$ on yhtä suuri kuin itse aste, joten vaadimme täsmälleen asteet $\deg = [3, 3, 1, 1]$. Tämä pakottaa kaksi solmua olemaan kaikkien muiden naapureita (aste $3$ $4$-solmuisessa verkossa), ja kun $n > 2$, mikä tahansa tällainen pari muodostaa väistämättä syklin yhdessä minkä tahansa kolmannen solmun kanssa. Puu ei voi sisältää syklejä, joten tuomio on myös "NO".

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1219EditorialOpen题解jianglyView

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.