CF1794C.Scoring Subsequences

普及-

通过率:0%

时间限制:2.50s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

The score of a sequence [s1,s2,…,sd][s_1, s_2, \ldots, s_d] is defined as s1⋅s2⋅…⋅sdd!\displaystyle \frac{s_1\cdot s_2\cdot \ldots \cdot s_d}{d!}, where d!=1⋅2⋅…⋅dd!=1\cdot 2\cdot \ldots \cdot d. In particular, the score of an empty sequence is 11.

For a sequence [s1,s2,…,sd][s_1, s_2, \ldots, s_d], let mm be the maximum score among all its subsequences. Its cost is defined as the maximum length of a subsequence with a score of mm.

You are given a non-decreasing sequence [a1,a2,…,an][a_1, a_2, \ldots, a_n] of integers of length nn. In other words, the condition a1≤a2≤…≤ana_1 \leq a_2 \leq \ldots \leq a_n is satisfied. For each k=1,2,…,nk=1, 2, \ldots , n, find the cost of the sequence [a1,a2,…,ak][a_1, a_2, \ldots , a_k].

A sequence xx is a subsequence of a sequence yy if xx can be obtained from yy by deletion of several (possibly, zero or all) elements.

序列 [s1,s2,…,sd][s_1, s_2, \ldots, s_d] 的得分定义为 s1⋅s2⋅…⋅sdd!\displaystyle \frac{s_1\cdot s_2\cdot \ldots \cdot s_d}{d!},其中 d!=1⋅2⋅…⋅dd!=1\cdot 2\cdot \ldots \cdot d。特别地,空序列的得分为 11。

对于序列 [s1,s2,…,sd][s_1, s_2, \ldots, s_d],设 mm 为其所有子序列中得分的最大值,则该序列的代价定义为:所有得分等于 mm 的子序列中的最大长度。

给定一个长度为 nn 的非递减整数序列 [a1,a2,…,an][a_1, a_2, \ldots, a_n],即满足 a1≤a2≤…≤ana_1 \leq a_2 \leq \ldots \leq a_n。对每个 k=1,2,…,nk = 1, 2, \ldots, n,求序列 [a1,a2,…,ak][a_1, a_2, \ldots, a_k] 的代价。

若序列 xx 可通过从序列 yy 中删除若干(可能为零个或全部)元素得到,则称 xx 是 yy 的一个子序列。

输入格式

Each test contains multiple test cases. The first line contains the number of test cases tt (1≤t≤1041 \le t \le 10^4). The description of the test cases follows.

The first line of each test case contains an integer nn (1≤n≤1051\le n\le 10^5) — the length of the given sequence.

The second line of each test case contains nn integers a1,a2,…,ana_1,a_2,\ldots,a_n (1≤ai≤n1\le a_i\leq n) — the given sequence. It is guaranteed that its elements are in non-decreasing order.

It is guaranteed that the sum of nn over all test cases does not exceed 5⋅1055\cdot 10^5.

每个测试包含多个测试用例。第一行包含测试用例的数量 tt(1≤t≤1041 \le t \le 10^4)。随后是各测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤1051\le n\le 10^5)—— 给定序列的长度。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n(1≤ai≤n1\le a_i\leq n)—— 给定序列。保证其元素按非递减顺序排列。

保证所有测试用例的 nn 之和不超过 5⋅1055\cdot 10^5。

输出格式

For each test case, output nn integers — the costs of sequences [a1,a2,…,ak][a_1, a_2, \ldots , a_k] in ascending order of kk.

对于每个测试用例,输出 nn 个整数——即序列 [a1,a2,…,ak][a_1, a_2, \ldots , a_k] 的代价,按 kk 的升序排列。

输入输出样例

  • 输入#1

    3
    3
    1 2 3
    2
    1 1
    5
    5 5 5 5 5

    输出#1

    1 1 2 
    1 1 
    1 2 3 4 5

说明/提示

In the first test case:

  • The maximum score among the subsequences of [1][1] is 11. The subsequences [1][1] and [][] (the empty sequence) are the only ones with this score. Thus, the cost of [1][1] is 11.
  • The maximum score among the subsequences of [1,2][1, 2] is 22. The only subsequence with this score is [2][2]. Thus, the cost of [1,2][1, 2] is 11.
  • The maximum score among the subsequences of [1,2,3][1, 2, 3] is 33. The subsequences [2,3][2, 3] and [3][3] are the only ones with this score. Thus, the cost of [1,2,3][1, 2, 3] is 22.

Therefore, the answer to this case is 1  1  21\:\:1\:\:2, which are the costs of [1],[1,2][1], [1, 2] and [1,2,3][1, 2, 3] in this order.

在第一个测试用例中:

  • 子序列 [1][1] 的子序列中最大得分为 11。只有子序列 [1][1] 和 [][](空序列)具有该得分。因此,[1][1] 的代价为 11。
  • 子序列 [1,2][1, 2] 的子序列中最大得分为 22。唯一具有该得分的子序列是 [2][2]。因此,[1,2][1, 2] 的代价为 11。
  • 子序列 [1,2,3][1, 2, 3] 的子序列中最大得分为 33。只有子序列 [2,3][2, 3] 和 [3][3] 具有该得分。因此,[1,2,3][1, 2, 3] 的代价为 22。

因此,本测试用例的答案为 1  1  21\:\:1\:\:2,即按顺序给出的 [1][1]、[1,2][1, 2] 和 [1,2,3][1, 2, 3] 的代价。

输入解题思路,AI测评打分。不知道怎么写?

首页