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

31702번 - Splatanie ciągów 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
9 초 1024 MB53360.000%

문제

Przedziałem w ciągu liczbowym C nazywamy każdy jego niepusty i spójny podciąg. W szczególności oznacza to, że każdy ciąg długości k posiada k(k+1)/2 przedziałów, ponieważ każdy przedział w nim jest wyznaczany przez początek oraz koniec owego przedziału.

Dla danego ciągu liczb całkowitych jego stabilnością nazwiemy długość najdłuższego ściśle monotonicznego przedziału w nim. Dokładniej, stabilność ciągu [c1, c2, . . . , ck] to największa taka liczba całkowita s, że istnieje indeks i (1 ≤ i ≤ k − s + 1) taki, że ci < ci+1 < . . . < ci+s−1 lub ci > ci+1 > . . . > ci+s−1. Przykładowo stabilnością ciągu [8, 6, 1, 3, 5, 7, 4, 2] jest 4, gdyż istnieje w nim ściśle monotoniczny przedział [1, 3, 5, 7], a nie istnieje dłuższy.

Splotem dwóch ciągów A i B nazwiemy każdy ciąg długości |A| + |B|, który posiada taki podciąg (niekoniecznie spójny) równy A, że wszystkie elementy poza tym podciągiem tworzą ciąg B. Na przykład splotami ciągów [1, 2, 3] i [4, 5] są ciągi [1, 4, 2, 5, 3], [4, 5, 1, 2, 3] i [4, 1, 5, 2, 3], ale nie [1, 2, 3, 4, 3] i [1, 2, 3, 5, 4].

Wreszcie przez f(A, B), gdzie A i B są ciągami liczb całkowitych, oznaczamy minimalną możliwą stabilność ich splotu.

Mając dane dwa ciągi liczb całkowitych A i B, o długościach odpowiednio n i m, Twoim zadaniem jest policzyć (削除) f(A, B) (削除ここまで) dla każdej liczby całkowitej x od 1 do n + m włącznie liczbę par (A′, B′) takich, że A′ jest przedziałem w A, B′ jest przedziałem w B i zachodzi f(A′, B′) = x. Jako że opisane liczby mogą być bardzo duże, wystarczy, że podasz ich reszty z dzielenia przez 109 + 7.

Możesz założyć, że wszystkie elementy ciągów A i B są parami różne.

입력

W pierwszym wierszu wejścia znajdują się dwie liczby całkowite n oraz m (1 ≤ n, m ≤ 300 000), oznaczające odpowiednio długości ciągów A oraz B.

W drugim wierszu wejścia znajduje się ciąg n liczb całkowitych A1, A2, . . . , An (1 ≤ Ai ≤ n + m) – wspomniany ciąg A.

W trzecim wierszu wejścia znajduje się ciąg m liczb całkowitych B1, B2, . . . , Bm (1 ≤ Bi ≤ n + m) – wspomniany ciąg B.

Gwarantowanym jest, że wszystkie elementy z ciągów A oraz B są parami różne. Innymi słowy, konkatenacja ciągów A i B tworzy permutację liczb od 1 do n + m.

출력

W jedynym wierszu standardowego wyjścia powinno znaleźć się n + m liczb oddzielonych pojedynczymi odstępami; i-ta z tych liczb powinna być równa reszcie z dzielenia przez 109 + 7 liczby par (A′, B′) takich, że A′ jest przedziałem w ciągu A, B′ jest przedziałem w ciągu B i zachodzi f(A′, B′) = i.

제한

예제 입력 1

5 3
1 2 5 7 4
8 3 6

예제 출력 1

0 84 6 0 0 0 0 0

노트

Wyjaśnienie przykładu: Dla przedziałów będących całymi ciągami zachodzi f([1, 2, 5, 7, 4], [8, 3, 6]) = 2, a ich splotem o stabilności równej 2 jest na przykład ciąg [1, 8, 2, 5, 3, 7, 4, 6].

Gdy rozważymy przedziały [1, 2, 5, 7] i [3], to otrzymamy f([1, 2, 5, 7], [3]) = 3, a ich splotem o stabilności równej 3 jest na przykład ciąg [1, 2, 5, 3, 7]. Można wykazać, że pary ciągów ([1, 2, 5, 7], [3]) nie można spleść tak, aby otrzymać ciąg o stabilności mniejszej niż 3.

Dla przedziałów [4] i [6] zachodzi f([4], [6]) = 2, a dobrymi przykładami są oba ich możliwe sploty: [4, 6] i [6, 4].

Każdą parę przedziałów w tym przykładzie można spleść tak, żeby stabilność otrzymanego splotu była nie większa niż 3. Stąd odpowiedzi dla x ≥ 4 są równe 0.

출처

Contest > Algorithmic Engagements > PA 2024 3-3번

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

출처

대학교 대회

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

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