Logo
(追記) (追記ここまで)

26726번 - Drzewa rozpinające 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
8 초 (추가 시간 없음) 1024 MB6000.000%

문제

Dany jest ciąg n liczb całkowitych a1, a2, . . . , an. Z jego pomocą tworzymy nieskierowany graf na n wierzchołkach: wierzchołki i oraz j (dla i ≠ j) są połączone NWD(ai, aj) rozróżnialnymi krawędziami. Twoim zadaniem jest policzyć liczbę drzew rozpinających w zadanym grafie. Dwa drzewa uznajemy za różne, jeśli jedno z nich zawiera krawędź, której nie zawiera drugie. Jako, że liczba ta może być bardzo duża to wystarczy, że podasz jej resztę z dzielenia przez 109 + 7.

입력

W pierwszym wierszu standardowego wejścia znajduje się jedna liczba całkowita n (1 ≤ n ≤ 5 000), oznaczająca długość ciągu, a zarazem liczbę wierzchołków grafu.

W drugim wierszu standardowego wejścia znajduje się ciąg n liczb całkowitych a1, a2, . . . , an (1 ≤ ai ≤ 5 000), opisany w treści zadania.

출력

W jedynym wierszu standardowego wyjścia powinna znaleźć się jedna liczba całkowita, oznaczająca resztę z dzielenia przez 109 + 7 liczby różnych drzew rozpinających opisanego grafu.

제한

예제 입력 1

4
1 2 3 4

예제 출력 1

24

힌트

Wyjaśnienie przykładu: Graf w teście przykładowym wygląda następująco:

Łatwo policzyć, że zawiera on dokładnie 24 różne drzewa rozpinające.

출처

Contest > Algorithmic Engagements > PA 2022 5-2번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /