QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 512 MB 總分: 100 可 Hack ✓

#22828. Aqua

统计

Aqua er rökþrautaleikur sem spilaður er á rétthyrndu borði sem skipt er í $r$ raðir og $c$ dálka. Raðirnar eru númeraðar frá $1$ til $r$ neðan frá og upp, og dálkarnir eru númeraðir frá $1$ til $c$ frá vinstri til hægri. Reiturinn í $i$-tu röð og $j$-ta dálki er táknaður með $(i,j)$.

Borðinu er skipt í nokkur hornrétt samanhangandi svæði (búr) með lóðréttum og láréttum mörkum. Nákvæmar tiltekið er hvert búr ótómt hlutmengi af reitum borðsins. Hver reitur á borðinu tilheyrir nákvæmlega einu búri. Mengi reita í búri myndar samanhangandi þátt: Ef tveir reitir tilheyra sama búri er alltaf hægt að ferðast úr öðrum reitnum í hinn með því að fara eingöngu um reiti þess búrs, þannig að hvert skref sé færsla milli tveggja reita sem deila hlið.

problem_22828_cacd86d1830994c84de7c3ab2ee1c931.png

Mynd A.1: Borð með 6 röðum, 7 dálkum og 8 búrum.

Í hverju búri hellir þrautahöfundurinn vatni frá efri brúnum búrsins. Vegna þyngdaraflsins rennur vatnið niður í reiti sem liggja lægra. Hann hellir vatni þannig að öll skilyrðin hér að neðan séu uppfyllt:

  • Hver reitur er annaðhvort alveg fullur af vatni eða alveg tómur.

  • Búr getur verið fullt af vatni, alveg tómt eða fyllt að hluta.

  • Í hverju búri er til ákveðin vatnshæð $\ell$ þannig að allir reitir búrsins fyrir neðan þessa hæð eru fullir og allir reitir búrsins fyrir ofan þessa hæð eru tómir. Með öðrum orðum, látum $(r_1,c_1)$ og $(r_2,c_2)$ vera tvo reiti í sama búri þannig að $r_1 \le r_2$; ef reiturinn $(r_2,c_2)$ er fullur, þá verður reiturinn $(r_1,c_1)$ einnig að vera fullur.

  • Búrin eru meðhöndluð óháð og aðskilið hvert frá öðru. Því gildir reglan hér að ofan ekki um reiti sem tilheyra ólíkum búrum.

Hér að neðan er dæmi um gilt borð:

problem_22828_5f720c9c7f57466c69726353a8bd7d70.png

Mynd A.2: Gilt borð.

Hér að neðan eru nokkur dæmi um ógild borð:

problem_22828_4f402c835cbcd9482462c8867aac91fe.png

Mynd A.3: Ógilt borð — reitirnir $(5,5)$ og $(5,7)$ ættu annaðhvort báðir að vera fullir eða báðir tómir, þar sem þeir eru í sama búri og í sömu röð.

problem_22828_f029f0f5dfa1e3112e2fc7034574f2ca.png

Mynd A.4: Ógilt borð — reitirnir $(4,2)$, $(4,3)$ og $(4,4)$ eru tómir, en þeir eru í sama búri og reiturinn $(5,2)$, sem er fullur af vatni.

problem_22828_14512c5331df2bc2a7b70cf769d314fb.png

Mynd A.5: Ógilt borð — reitir geta ekki verið aðeins fylltir að hluta.

Þrautahöfundurinn fylgir ekki aðeins reglunum hér að ofan, heldurætir hann einnig að fjölda fullra reita í hverri röð. Í sumum röðum vill hann að fjöldi fullra reita sé jafn ákveðnum föstum gildum, en setur engar skorður á aðrar raðir.

Verkefni þitt er að telja fjölda leiða til að hella vatni í búrin þannig að öllum reglum og kröfum hér að ofan sé fullnægt. Tvær leiðir teljast ólíkar ef og aðeins ef til er reitur sem er fullur í annarri leiðinni en tómur í hinni.

Inntak

Fyrsta línan í inntakinu inniheldur tvær heiltölur $r,c$ ($1 \le r,c \le 20$). Næstu $r+1$ línur lýsa borðinu samkvæmt eftirfarandi reglum:

  • Hver lína inniheldur nákvæmlega $2\cdot c+1$ stafi, þar sem hver stafur er eitt af eftirfarandi: bil, undirstrik (_) eða lóðrétt strik (|).

  • Allir stafir í sléttum sætisnúmerum í fyrstu og síðustu línunni eru undirstrik, sem sýna efri og neðri mörk borðsins.

  • Hvert undirstrik í inntakinu, fyrir utan þau sem nefnd eru hér að ofan, táknar lárétt búrmörk milli tveggja samliggjandi reita í sama dálki.

  • Fyrsti og síðasti stafurinn í öllum línum (nema þeirri fyrstu) eru lóðrétt strik, sem sýna vinstri og hægri mörk borðsins.

  • Hvert lóðrétt strik í inntakinu, fyrir utan þau sem nefnd eru hér að ofan, táknar lóðrétt búrmörk milli tveggja samliggjandi reita í sömu röð.

Sjá sýnidæmin til glöggvunar.

Samkvæmt skilgreiningu:

  • Ef engin lárétt búrmörk eru milli tveggja samliggjandi reita í dálki, þá tilheyra þessir tveir reitir sama búri.

  • Ef engin lóðrétt búrmörk eru milli tveggja samliggjandi reita í röð, þá tilheyra þessir tveir reitir sama búri.

Síðasta línan inniheldur $r$ heiltölur $x_1,x_2,\ldots,x_r$ ($-1 \le x_i \le c$) sem lýsa kröfum um fjölda fullra reita í hverri röð. Ef $x_i=-1$, þá getur ($r-i+1$)-ta röðin haft hvaða fjölda sem er af reitum með vatni. Annars verður fjöldi fullra reita í þessari röð að vera nákvæmlega $x_i$.

Tryggt er að borðið hefur í mesta lagi 20 búr.

Úttak

Úttakið inniheldur nákvæmlega eina heiltölu — fjölda gildra borða sem uppfylla gefin skilyrði, modulo $10^9+7$.

Sýnidæmi

Inntak 1

6 7
 _ _ _ _ _ _ _ 
| |  _ _|  _  |
| | |_ _| |_| |
| |_ _ _|  _ _|
| |  _ _| |   |
| | |_ _| |   |
|_|_ _ _|_|_ _|
6 3 7 2 2 2

Úttak 1

1

Skýring

Fyrsta sýnidæmið samsvarar mynd A.2 hér að ofan.

Inntak 2

2 3
 _ _ _ 
|     |
|_ _ _|
-1 -1

Úttak 2

3

Inntak 3

3 3
 _ _ _ 
|  _  |
| | | |
|_|_|_|
-1 1 1

Úttak 3

1

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.