Universal Cup Judging System

Universal Cup

Süre Sınırı: 2.0 s Bellek Sınırı: 1024 MB Toplam puan: 100 Hack'lenebilir ✓
İstatistikler

Som du vet, deltar du i Chinese Constructive Problem Contest (CCPC), og uten tvil er det oppgaveforfattende universitetet, Sun Yat-sen-universitetet, som Konstruksjonens Kongerike, svært ivrig etter at du skal bryne deg på noen relaterte oppgaver.

Lille U er student i Konstruksjonens Kongerike. I en algoritmetime lærte Lille U om MCOP (Matrix Chain Ordering Problem). Her er en introduksjon til MCOP:

Gitt en følge av positive heltall med lengde $n \ge 3$, $[w_1, w_2, \dots, w_n]$, som inndata til algoritmen. Følgende formel multipliserer $n - 1$ matriser for til slutt å oppnå en ny matrise:

$$M = M_1 \times M_2 \times \cdots \times M_{n-1}$$

der $M_i$ er en matrise av størrelse $w_i \times w_{i+1}$. Matrisemultiplikasjon oppfyller den assosiative loven, så å endre multiplikasjonsrekkefølgen vil gi den samme sluttmatrisen $M$, men antallet operasjoner kan variere. Målet med problemet er å finne en optimal multiplikasjonsstrategi blant $(n - 2)!$ mulige strategier, slik at det totale antallet operasjoner som kreves for matrisemultiplikasjonen minimeres. Her antas det at å multiplisere matriser av størrelsene $p \times q$ og $q \times r$ vil gi en matrise av størrelse $p \times r$, og kreve $pqr$ operasjoner. Det minimale totale antallet operasjoner som kreves for å beregne $M$ under den optimale strategien betegnes som $\text{MCOP}([w_1, w_2, \dots, w_n])$.

Lille U har lært hvordan man løser dette problemet med tilstrekkelig god tidskompleksitet i timen, men som student i Konstruksjonens Kongerike tenkte Lille U naturligvis på følgende problem:

Gitt et heltall $X$ som oppfyller $1 \le X \le 10^9$. Du må konstruere en heltallsfølge med lengde $l$, $[a_1, a_2, \dots, a_l]$, som oppfyller følgende krav:

  • $3 \le l \le 6$;
  • For alle $i \in [1, l]$ gjelder $1 \le a_i \le 4000$;
  • $\text{MCOP}([a_1, a_2, \dots, a_l]) = X$.

Lille U har allerede implementert en sjekker (checker) ved hjelp av algoritmen fra timen, og det du må gjøre er å løse dette konstruksjonsproblemet.

Inndata

Denne oppgaven inneholder flere testtilfeller. Den første linjen i inndataene inneholder et heltall $T$ ($1 \le T \le 500$), som representerer antallet testtilfeller.

For hvert testtilfelle består inndataene av én enkelt linje med et heltall $X$ ($1 \le X \le 10^9$), hvis betydning er gitt i oppgaveteksten.

Utdata

For hvert testtilfelle: skriv først ut en linje med et heltall $l$ ($3 \le l \le 6$), som representerer lengden på den konstruerte følgen. Skriv deretter ut en linje med $l$ heltall, som representerer den konstruerte følgen.

Det kan bevises at det for enhver inndata $X$ alltid finnes en konstruksjon som oppfyller kravene. Hvis det finnes flere konstruksjoner som oppfyller kravene, kan du skrive ut hvilken som helst av dem.

Eksempel

Eksempelinndata 1

2
90
10

Eksempelutdata 1

4
5 3 2 6
3
1 1 10

Merk

For det første testtilfellet er den konstruerte følgen $[5, 3, 2, 6]$, som representerer behovet for å utføre en kjedemultiplikasjon av tre matriser med størrelsene $5 \times 3$, $3 \times 2$ og $2 \times 6$. Betrakt to multiplikasjonsstrategier:

  • Multipliser først $M_1$ og $M_2$ for å få en matrise av størrelse $5 \times 2$, og multipliser deretter med $M_3$, som tilsvarer uttrykket $(M_1 \times M_2) \times M_3$. Det totale antallet operasjoner er da $5 \times 3 \times 2 + 5 \times 2 \times 6 = 90$;
  • Multipliser først $M_2$ og $M_3$ for å få en matrise av størrelse $3 \times 6$, og multipliser deretter med $M_1$, som tilsvarer uttrykket $M_1 \times (M_2 \times M_3)$. Det totale antallet operasjoner er da $3 \times 2 \times 6 + 5 \times 3 \times 6 = 126$.

Her er målet å minimere det totale antallet operasjoner, så $\text{MCOP}([5, 3, 2, 6]) = \min(90, 126) = 90$.

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.