Pregătire XI–XII · clasa a 11-a
Combinări modulo un prim
Cerință
Răspunde la q întrebări: pentru fiecare pereche (n, k), afișează combinări de n luate câte k, modulo 1 000 000 007.
Problemă originală de antrenament, nu este subiect oficial.
Date de intrare
Prima linie: q. Următoarele q linii: n și k.
Date de ieșire
q linii, câte un răspuns. Nu afișa mesaje suplimentare.
Restricții
- 1 ≤ q ≤ 100 000
- 0 ≤ k ≤ n ≤ 1 000 000
- Sunt 20 de teste, fiecare valorează 5 puncte.
1 223734 199463
105151166
Datele exemplului respectă formatul de intrare. Aplicăm ideea: Precalculează factorialele și inversele lor o singură dată; fiecare răspuns devine n!·inv(k!)·inv((n−k)!). Rezultatul corect pentru acest exemplu este: 105151166.
2 882143 635233 229791 203472
631221201 212523870
Datele exemplului respectă formatul de intrare. Aplicăm ideea: Precalculează factorialele și inversele lor o singură dată; fiecare răspuns devine n!·inv(k!)·inv((n−k)!). Rezultatul corect pentru acest exemplu este: 631221201 212523870.
8 481913 82641 153397 119771 851540 810212 567603 341586 463739 75532 757515 104852 436259 125133 211530 166025
615518203 136786487 92553070 655210418 70015501 648753519 155781669 502737861
Datele exemplului respectă formatul de intrare. Aplicăm ideea: Precalculează factorialele și inversele lor o singură dată; fiecare răspuns devine n!·inv(k!)·inv((n−k)!). Rezultatul corect pentru acest exemplu este: 8 linii, începând cu „615518203”.
Probleme similare pe PbInfo
Exersează aceeași tehnică și pe PbInfo — acolo găsești și soluții oficiale.
- #1512 Mars — șmenul lui Mars
- #3844 KSum — SSM cu lungime minimă
- #2921 SumeSecv1 — sume parțiale
- #237 Sume — sume parțiale
- #3659 SumMaxSecv — suma costurilor
- #4205 SecvSumS — secvență de sumă S
- #3941 CountSumS — perechi de sumă S
- #4532 SumOfAll — suma subsecvențelor
- #1879 platou2 — secvență crescătoare
- #1639 Secvente3 — ONI 2013
- #2301 secv — ONI gimnaziu 2016
- #2510 vsecvente — lot juniori
- #1090 Secvente2
- #4423 secv2
- #3163 SecvMaxVal
- #334 secventa1 — clasice
- #50 secvmax — secvența de sumă maximă
- #315 secventa
- #190 secvk — secvențe de lungime k
- #217 platou1 — platouri