QOJ.ac

QOJ

Süre Sınırı: 1.0 s Bellek Sınırı: 512 MB Toplam puan: 100

#80. TRAX

İstatistikler

Snuke juega con la siguiente ficha (esta ficha se utiliza en un juego llamado TRAX):

problem_80_fbb392f0503cbc5492ab5ab10453ac86.png

Snuke quiere llenar una cuadrícula de $H\times W$ con estas fichas. En cada casilla de la cuadrícula coloca una ficha en una de las cuatro orientaciones:

problem_80_13274be0bdda812f666db4f58f9b74da.png

Estas orientaciones están numeradas del 1 al 4 como se muestra en la imagen de arriba.

La colocación de las fichas debe satisfacer las siguientes restricciones:

  • Un arco rojo no debe tocar un arco blanco.
  • La cuadrícula no debe contener ciclos (véanse los ejemplos de abajo).
  • Para cada $i$ ($1\le i\le N$), en la casilla situada en la fila $R_i$ desde arriba y la columna $C_i$ desde la izquierda, la orientación de la ficha debe ser $D_i$.

Por ejemplo, la siguiente imagen muestra dos colocaciones no válidas de fichas. La colocación de la izquierda contiene un ciclo blanco, y la de la derecha contiene un ciclo rojo y un ciclo blanco grande.

problem_80_0f1c8b4deb1e0585350dd77cdd8fac27.png

Cuenta el número de colocaciones válidas, módulo $10^9+7$.

Entrada

$$ \begin{gathered} H\quad W\\ N\\ R_1\quad C_1\quad D_1\\ \vdots\\ R_N\quad C_N\quad D_N \end{gathered} $$

  • $1\le H,W\le 10^5$
  • $0\le N\le 10^5$
  • $1\le R_i\le H$
  • $1\le C_i\le W$
  • $1\le D_i\le 4$
  • Los pares $(R_i,C_i)$ son distintos dos a dos.

Salida

Imprime el número de colocaciones válidas, módulo $10^9+7$.

Ejemplos

Entrada 1

2 2
1
1 1 4

Salida 1

4

Entrada 2

2 10
2
1 1 1
1 2 1

Salida 2

0

Entrada 3

2015 1114
0

Salida 3

71460824

Entrada 4

2 2
2
1 1 1
2 2 3

Salida 4

0

Entrada 5

5 6
3
1 2 2
4 1 1
5 6 4

Salida 5

12

Entrada 6

5 6
2
3 3 4
3 4 2

Salida 6

39

Nota

Para el ejemplo 1, estas son las cuatro colocaciones válidas:

problem_80_655a4e5ba745dae34284d971649e60be.png

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#495Editorial Open题解Milmon Download

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.