3-SAT

Feu un programa que compti totes les solucions d’un conjunt d’mm clàusules c1,,cmc_1, \dots, c_m de tres literals en forma normal conjuntiva.

Per exemple, considereu les tres clàusules abc,¬abc,b¬cd.a \lor b \lor c, \enspace \neg a \lor b \lor c, \enspace b \lor \neg c \lor d \enspace . (Aquest és el primer exemple de l’entrada.) Hi ha 10 solucions possibles, una de les quals és {a=cert,b=fals,c=cert,d=cert}\{a = \mbox{cert}, b = \mbox{fals}, c = \mbox{cert}, d = \mbox{cert}\}

Entrada

L’entrada consisteix en diversos casos, cadascun amb el nombre de variables nn i el nombre de clàusules mm, seguides de les mm clàusules. Cada clàusula es defineix amb una paraula amb tres lletres diferents d’entre les nn primeres de l’alfabet. Les lletres majúscules indiquen variables tal qual, i les minúscules variables negades.

Podeu suposar 3n263 \le n \le 26, 1m1001 \le m \le 100, que les lletres dins de cada clàusula estan ordenades entre si, que no hi ha clàusules repetides, que cada variable apareix en almenys una clàusula, i que sempre hi haurà alguna solució.

Sortida

Per a cada cas, escriviu el nombre de solucions del conjunt de clàusules.

Pista

La solució esperada per a aquest problema és un backtracking conceptualment simple.

Informació del problema

Autoria: Salvador Roura

Generació: 2026-01-25T10:20:37.261Z

© Jutge.org, 2006–2026.
https://jutge.org