QOJ.ac

QOJ

حد الوقت: 6.0 s حد الذاكرة: 512 MB مجموع النقاط: 100 قابلة للهجوم ✓

#17775. Réseau d'alimentation électrique

الإحصائيات

Le réseau électrique comprend $n$ nœuds, reliés entre eux par plusieurs lignes de transport bidirectionnelles, formant un graphe non orienté.

Lors de la configuration du réseau, tous les nœuds doivent être répartis dans deux modules d'alimentation principaux indépendants. Pour un nœud $i$ ($1 \le i \le n$), on définit son nombre de voisins dans le même module, noté $d_i$, comme le nombre de nœuds connectés directement à $i$ qui sont affectés au même module d'alimentation que $i$.

Xiao S a trouvé $q$ enregistrements de tests, chaque enregistrement étant représenté par une chaîne de caractères $s$ de longueur $n$. Pour le $i$-ième nœud ($1 \le i \le n$) : Si $s_i = 0$, alors le nombre de voisins dans le même module $d_i$ pour le nœud $i$ dans cette configuration doit être pair ; Si $s_i = 1$, alors le nombre de voisins dans le même module $d_i$ pour le nœud $i$ dans cette configuration doit être impair ; * Si $s_i = ?$, alors le nœud $i$ n'est pas concerné par l'enregistrement, c'est-à-dire qu'aucune contrainte de parité n'est imposée sur $d_i$ pour le nœud $i$.

Xiao T souligne que les ensembles de nœuds impliqués dans les enregistrements présentent une relation d'imbrication régulière. Plus précisément, soit $S_i$ l'ensemble des nœuds impliqués dans le $i$-ième test ($1 \le i \le q$) (c'est-à-dire l'ensemble des positions dans la chaîne correspondante qui ne sont pas égales à ?). Alors, pour deux enregistrements de test distincts quelconques $i, j$ ($1 \le i < j \le q$), $S_i$ et $S_j$ satisfont nécessairement l'une des trois relations suivantes : $S_i \subseteq S_j$, $S_j \subseteq S_i$, ou $S_i \cap S_j = \emptyset$.

Afin de configurer le réseau électrique au plus vite, vous devez aider Xiao T et Xiao S à calculer, pour chaque test, le nombre de façons essentiellement différentes d'affecter tous les nœuds aux deux modules principaux. Deux configurations sont considérées comme différentes si et seulement s'il existe au moins un nœud affecté à un module différent dans les deux configurations. Comme la réponse peut être très grande, vous devez seulement donner le résultat modulo $10^9 + 7$.

Entrée

La première ligne de l'entrée contient deux entiers positifs $n, q$ ($1 \le n, q \le 3 \times 10^3$).

Les $n$ lignes suivantes contiennent chacune une chaîne de caractères de longueur $n$ composée de 0 et 1, où le $j$-ième caractère de la $i$-ième ligne ($1 \le i, j \le n$) indique s'il existe une ligne de transport entre le nœud $i$ et le nœud $j$ (1 si elle existe, 0 sinon). Il est garanti qu'il n'existe pas de ligne de transport reliant un nœud à lui-même, c'est-à-dire que le $i$-ième caractère de la $i$-ième ligne est toujours 0.

Les $q$ lignes suivantes contiennent chacune une chaîne de caractères $s$ de longueur $n$, représentant l'enregistrement d'un test.

Sortie

Affichez $q$ lignes, chacune contenant un entier non négatif représentant le nombre de façons essentiellement différentes d'affecter tous les nœuds aux deux modules principaux pour le test correspondant, modulo $10^9 + 7$.

Exemples

Entrée 1

3 2
010
100
000
1?0
010

Sortie 1

4
0

Remarque

Pour le premier test, il existe les quatre configurations suivantes : 1. Affecter tous les nœuds au premier module ; 2. Affecter tous les nœuds au deuxième module ; 3. Affecter les nœuds 1 et 2 au premier module, et le nœud 3 au deuxième module ; 4. Affecter les nœuds 1 et 2 au deuxième module, et le nœud 3 au premier module.

Entrée 2

6 5
000010
000001
000000
000001
100000
010100
?11?0?
??????
?10?1?
??0?0?
?01?01

Sortie 2

0
64
16
32
0

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download
#1647EditorialOpen可能是另解dXqwq2026-04-30 15:29:14View

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.