QOJ.ac

QOJ

Time Limit: 9 s Memory Limit: 1024 MB Total points: 10

#8410. 文字列の結合 [A]

Statistics

数値列 $C$ における「区間」とは、その空でない連続する部分列のことを指します。具体的には、長さ $k$ の任意の数列は $\frac{k(k+1)}{2}$ 個の区間を持ちます。これは、各区間がその開始位置と終了位置によって一意に定まるためです。

ある整数列の「安定性」とは、その数列に含まれる最長の狭義単調増加または狭義単調減少である区間の長さを指します。より正確には、数列 $[c_1, c_2, \dots, c_k]$ の安定性とは、あるインデックス $i$ ($1 \le i \le k - s + 1$) が存在して、$c_i < c_{i+1} < \dots < c_{i+s-1}$ または $c_i > c_{i+1} > \dots > c_{i+s-1}$ が成り立つような最大の整数 $s$ のことです。例えば、数列 $[8, 6, 1, 3, 5, 7, 4, 2]$ の安定性は 4 です。これは、この数列に狭義単調な区間 $[1, 3, 5, 7]$ が存在し、これより長いものが存在しないためです。

2つの数列 $A$ と $B$ の「合成(splot)」とは、長さ $|A| + |B|$ の数列であって、$A$ を(連続とは限らない)部分列として含み、かつその部分列を除いた残りの要素が $B$ を構成するようなものを指します。例えば、数列 $[1, 2, 3]$ と $[4, 5]$ の合成には $[1, 4, 2, 5, 3], [4, 5, 1, 2, 3], [4, 1, 5, 2, 3]$ などがありますが、$[1, 2, 3, 4, 3]$ や $[1, 2, 3, 5, 4]$ は含まれません。

最後に、$f(A, B)$ を、整数列 $A$ と $B$ の合成における最小の安定性と定義します。

2つの整数列 $A$(長さ $n$)と $B$(長さ $m$)が与えられます。各整数 $x$ ($1 \le x \le n + m$) に対して、$A$ の区間 $A'$ と $B$ の区間 $B'$ の組 $(A', B')$ であって、$f(A', B') = x$ を満たすものの個数を求めてください。答えは非常に大きくなる可能性があるため、$10^9 + 7$ で割った余りを出力してください。

数列 $A$ と $B$ のすべての要素は互いに異なると仮定して構いません。

入力

入力は以下の形式で与えられます。

$n$ $m$ $A_1$ $A_2$ $\dots$ $A_n$ $B_1$ $B_2$ $\dots$ $B_m$

ここで、$1 \le n, m \le 300\,000$ であり、$1 \le A_i, B_i \le n + m$ です。数列 $A$ と $B$ のすべての要素は互いに異なり、これらを連結すると $1$ から $n + m$ までの順列になります。

出力

標準出力に $n + m$ 個の整数を空白区切りで出力してください。$i$ 番目の整数は、$A$ の区間 $A'$ と $B$ の区間 $B'$ の組 $(A', B')$ であって $f(A', B') = i$ を満たすものの個数を $10^9 + 7$ で割った余りです。

入出力例

入力 1

5 3
1 2 5 7 4
8 3 6

出力 1

0 84 6 0 0 0 0 0

注記

例の解説:数列全体を区間とすると $f([1, 2, 5, 7, 4], [8, 3, 6]) = 2$ であり、安定性が 2 となる合成の一例は $[1, 8, 2, 5, 3, 7, 4, 6]$ です。 区間 $[1, 2, 5, 7]$ と $[3]$ を考えると $f([1, 2, 5, 7], [3]) = 3$ となり、安定性が 3 となる合成の一例は $[1, 2, 5, 3, 7]$ です。数列の組 $([1, 2, 5, 7], [3])$ を合成して安定性を 3 未満にすることはできないことが示せます。 区間 $[4]$ と $[6]$ については $f([4], [6]) = 2$ であり、合成可能なすべての数列 $[4, 6]$ および $[6, 4]$ が安定性 2 を持ちます。 この例におけるどの区間の組も、安定性が 3 以下となるように合成可能です。したがって、$x \ge 4$ に対する答えは 0 となります。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.