hyelie
hyelie
Hyeil Jeong
       
글쓰기    관리    수식입력
  • 전체보기 (495)
    • PS (283)
      • Algorithm (28)
      • PS Log (244)
      • Contest (6)
      • Tips (5)
    • Development (52)
      • Java (14)
      • Spring (23)
      • SQL (2)
      • Node.js (2)
      • Socket.io (3)
      • Study (4)
      • Utils (4)
    • DevOps (36)
      • Git (5)
      • Docker (4)
      • Kubernetes (2)
      • GCP (3)
      • Environment Set Up (8)
      • Tutorial (12)
      • Figma (2)
    • CS (74)
      • OOP (7)
      • OS (24)
      • DB (2)
      • Network (24)
      • Architecture (0)
      • Security (2)
      • Software Design (0)
      • Parallel Computing (15)
    • Project (15)
      • Project N2T (5)
      • Project ASG (0)
      • Project Meerkat (1)
      • Model Checking (7)
      • Ideas (2)
    • 내가 하고싶은 것! (34)
      • Plan (16)
      • Software Maestro (10)
      • 취준 (8)
hELLO · Designed By 정상우.
hyelie

hyelie

PS/PS Log

22.07.14. 풀었던 문제들

백준 단계별 21 분할 정복

11401 이항계수 3 - 페르마의 소정리 쉣...

 

페르마 그는 신인가? 풀이는 아래와 같다.

 

이항계수 $_{n}C_{k} = \tfrac{n!}{(n-K)! \cdot k!} = \tfrac{n \cdot (n-1)\cdots (n-k+1)}{k \cdot (k-1) \cdots 1}$이다.

 편의를 위해 $A = n \cdot (n-1) \cdots (n-k+1), B = k \cdot (k-1) \cdots 1$라고 두자.

 한편, 페르마의 소정리에 의해 나누는 값 1,000,000,007(p라고 두자)은 소수이므로 $a^{p-1} \equiv 1 \% p$이다.

 그러면 이항계수를 $\tfrac{A}{B} \% p  = (AB^{-1}) \% p = (AB^{-1} \times 1) \% p$로 둘 수 있는데,

 $(AB^{-1} \times B^{p-1}) \% p = (AB^{-1} \% p \times B^{p-1} \% p) \% p = ((AB^{-1} \% p) \times 1) \% p = (AB^{-1}) \% p$이다. 

 따라서 이항계수 $(AB^{-1} \times 1) \% p가 (AB^{-1} \times B^{p-1}) \% p = (AB^{p-2}) \% p$로 바뀌게 된다.

 최종적으로 $(AB^{p-2}) \% p =  ((n \cdot (n-1) \cdots (n-k+1)) \times (k!)^{p-2} ) \% p$가 되고, 이는 O(log(p) + n)이 된다.

 

 

6549 Largest Rectangle in a Histogram

 

이분탐색 풀까

코포는 주말에

 

 

'PS > PS Log' 카테고리의 다른 글

22.08.04. 풀었던 문제들  (0) 2022.08.04
22.08.03. 풀었던 문제들  (0) 2022.08.03
22.07.13. 풀었던 문제들  (0) 2022.07.13
22.07.12. 풀었던 문제들  (0) 2022.07.12
22.07.11. 풀었던 문제들  (0) 2022.07.11
    hyelie
    hyelie

    티스토리툴바