#3508
Bal
La balul din acest an participă n
băieți și n
fete, numerotați de la 1
la n
. Compatibilitățile dintre aceștia pot fi reprezentate sub forma unui graf bipartit. Fie mat
matricea de adiacentă. Atunci, băiatul i
se poate cupla cu fata j
doar dacă sunt compatibili, adică mat[i][j] = 1
. Aflați numărul de moduri de a forma cele n
cupluri.
Problema | Bal | Operații I/O |
![]() |
---|---|---|---|
Limita timp | 0.7 secunde | Limita memorie |
Total: 128 MB
/
Stivă 32 MB
|
Id soluție | #58525164 | Utilizator | |
Fișier | bal.cpp | Dimensiune | 664 B |
Data încărcării | 14 Iunie 2025, 09:43 | Scor / rezultat | Eroare de compilare |
bal.cpp: In function 'int main()': bal.cpp:3:607: error: expected '}' at end of input using namespace std; const int NMAX = 24; const int MASK = 1 << NMAX; const int MOD = 1e9 + 7; vector<int> dp(MASK); int c[NMAX][NMAX]; int main() { int n,masca; cin >> n; masca = 1 << n; for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < n ; j++) { cin >> c[i][j]; } } for(int shift = 0; shift < n ; shift++) { if(c[0][shift]) { dp[1 << shift] = 1; } } for(int j = 1 ; j < masca ; j++) { if(!dp[j]) continue; int i = __builtin_popcount(j); for(int m = 0 ; m < n ; m++) { if(~j & (1 << m)) { if(c[i][m]) { dp[j | (1 << m)] += dp[j]; dp[j | (1 << m)] %= MOD; } } } } cout << dp[masca - 1] << endl; return 0; // superpeace } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Bal face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.