Antrenament ONI · clasa a 10-a · clasa a 10-a
Combinări modulo un prim (ONI 10)
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 în stil ONI (etapa națională), clasa a 10-a, 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 621198 17449
341055884
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: 341055884.
2 788458 323584 473962 363849
27092010 485763476
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: 27092010 485763476.
8 831880 106912 831480 41586 300910 152778 383076 235330 821319 124348 755414 368328 933549 207785 552389 221938
468746908 715671314 962731115 825240897 485480654 352824485 766705056 244949983
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 „468746908”.
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