Universal Cup Judging System

Universal Cup

Time Limit: 1.0 s Memory Limit: 1024 MB Total points: 100
Statistics

NIT gillar runda skruvar. Han gillar också operatorn $\oplus$ eftersom den påminner honom om runda skruvar, där $\oplus$ representerar bitvis XOR (Bitwise-XOR).

Definiera värdet $V_a$ för en talföljd $a_1, a_2, \cdots, a_n$ som $V_a = a_1 + a_n + \sum_{i=1}^{n-1} (a_i \oplus a_{i+1})$.

Givet en talföljd $a_1, a_2, \cdots, a_n$ kan du utföra följande operation valfritt antal gånger:

  • Välj ett index $i$ ($1 \le i \le n$) och ändra $a_i$ till ett godtyckligt icke-negativt heltal; denna operation har en kostnad $C$.

Minimera summan av talföljdens värde och kostnaden som uppstår av operationerna. Med andra ord, låt $p$ vara antalet operationer du utfört och $V_{a'}$ vara värdet av $a$ efter operationerna; då ska du minimera $pC + V_{a'}$.

Indata

Indatan innehåller flera testfall. Den första raden i indatan innehåller ett heltal $T$ ($1 \le T \le 100$), antalet testfall.

För varje testfall innehåller den första raden två heltal $n, C$ ($2 \le n \le 10^5, 0 \le C < 2^{19}$), längden på talföljden och kostnaden för att utföra en operation.

Den andra raden innehåller $n$ heltal $a_1, a_2, \cdots, a_n$ ($0 \le a_i < 2^{18}$), som representerar elementen i talföljden.

Det garanteras att summan av $n$ över alla testfall inte överstiger $2 \times 10^5$.

Utdata

För varje testfall, skriv ut ett heltal på en rad, det minsta möjliga värdet av $pC + V_{a'}$.

Exempel

Indata

3
4 4
1 4 5 6
8 6
6 6 6 1 1 6 6 6
6 7
1 7 2 6 3 5

Utdata

14
24
29

Förklaring

För det första testfallet är ett sätt att uppnå minimum att ändra talföljden till $1, \mathbf{1}, \mathbf{1}, \mathbf{0}$; de fetstilta talen är de ändrade. Det slutliga värdet på talföljden är $2$, och $3$ operationer görs; totalt värde + kostnad är $2 + 3 \times 4 = 14$.

För det andra testfallet är ett sätt att uppnå minimum att ändra talföljden till $6, 6, 6, \mathbf{6}, \mathbf{6}, 6, 6, 6$; det slutliga värdet är $12 + 2 \times 6 = 24$.

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.