Editorial for Slepi brojevi
Submitting an official solution before solving the problem yourself is a bannable offence.
Analiza
Primetimo da, u svim potproblemima, možemo na početku izdvojiti sve slepe brojeve - proveru da li je neki broj slep možemo uraditi u složenosti , tako da možemo izdvojiti sve takve u , što je dovoljno brzo.
Potproblem 1
Primetimo da možemo da probamo sve parove slepih brojeva (ima ih najviše (gruba granica)), i videti koji od tih parova je klep, proverom da li deli njihov proizvod, u složenosti
Potproblem 2
Zapravo, nas samo interesuju ostaci svih slepih brojeva pri deljenju sa - samo od ostataka pri deljenju dva broja nekim brojem zavisi i ostatak proizvoda. Dakle, možemo imati brojač koliko postoji slepih brojeva sa svakim ostatkom, i u izračunati koliko ima klepih parova.
Potproblemi 3 i 4
Neka je broj slepih brojeva deljivih sa . Posmatrajmo sve ostale slepe brojeve. Ukoliko posmatramo neki broj , neka je . Par će biti klep ukoliko važi - dakle, kada tražimo sve brojeve koji formiraju klep par sa brojem , treba nam broj brojeva deljivih sa nekim brojem. To možemo lako uraditi prolaskom kroz niz slepih brojeva (tj. njihovih ostataka pri deljenju sa ) - kada naiđemo na broj , dodamo na rešenje, i uvećamo svakog delioca broja za 1. Ovo rešenje radi u složenosti , što je sigurno dovoljno brzo, jer ne postoji ulaz za koji je broj slepih brojeva veći od 50000. Na ovo dobijeno rešenje treba dodati , kao i .
Comments