CF1450D.Rating Compression
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
On the competitive programming platform CodeCook, every person has a rating graph described by an array of integers a of length n. You are now updating the infrastructure, so you've created a program to compress these graphs.
The program works as follows. Given an integer parameter k, the program takes the minimum of each contiguous subarray of length k in a.
More formally, for an array a of length n and an integer k, define the k-compression array of a as an array b of length n−k+1, such that $$b_j =\min_{j\le i\le j+k-1}a_i$$
For example, the 3-compression array of [1,3,4,5,2] is [min1,3,4,min3,4,5,min4,5,2]=[1,3,2].
A permutation of length m is an array consisting of m distinct integers from 1 to m in arbitrary order. For example, [2,3,1,5,4] is a permutation, but [1,2,2] is not a permutation (2 appears twice in the array) and [1,3,4] is also not a permutation (m=3 but there is 4 in the array).
A k-compression array will make CodeCook users happy if it will be a permutation. Given an array a, determine for all 1≤k≤n if CodeCook users will be happy after a k-compression of this array or not.
在编程竞赛平台 CodeCook 上,每位用户都有一张评分图,由一个长度为 n 的整数数组 a 描述。目前你正在升级基础设施,因此编写了一个程序来压缩这些图表。
该程序的工作方式如下:给定一个整数参数 k,程序计算数组 a 中每个长度为 k 的连续子数组的最小值。
更准确地说,对于长度为 n 的数组 a 和整数 k,定义 a 的 k-压缩数组为一个长度为 n−k+1 的数组 b,满足
b_j=min_jleilej+k−1a_i
例如,[1,3,4,5,2] 的 3-压缩数组为 [min1,3,4,min3,4,5,min4,5,2]=[1,3,2]。
长度为 m 的排列是指由 1 到 m 这 m 个互不相同的整数组成的、顺序任意的数组。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是排列(数字 2 在数组中出现了两次),[1,3,4] 也不是排列(此时 m=3,但数组中包含了 4)。
若一个 k-压缩数组是一个排列,则 CodeCook 用户将感到满意。给定数组 a,请对所有满足 1leqkleqn 的 k,判断对该数组进行 k-压缩后,CodeCook 用户是否会感到满意。
输入格式
The first line contains a single integer t (1≤t≤104) — the number of test cases.
The first line of the description of each test case contains a single integer n (1≤n≤3⋅105) — the length of the array.
The second line of the description of each test case contains n integers a1,…,an (1≤ai≤n) — the elements of the array.
It is guaranteed, that the sum of n for all test cases does not exceed 3⋅105.
第一行包含一个整数 t(1≤t≤104)——测试用例的数量。
每个测试用例的描述的第一行包含一个整数 n(1≤n≤3⋅105)——数组的长度。
每个测试用例的描述的第二行包含 n 个整数 a1,…,an(1≤ai≤n)——数组的元素。
保证所有测试用例的 n 之和不超过 3⋅105。
输出格式
For each test case, print a binary string of length n.
The k-th character of the string should be 1 if CodeCook users will be happy after a k-compression of the array a, and 0 otherwise.
对于每个测试用例,输出一个长度为 n 的二进制字符串。
该字符串的第 k 个字符应为 1,当且仅当数组 a 经过 k-压缩后 CodeCook 用户会感到满意;否则为 0。
输入输出样例
输入#1
5 5 1 5 3 4 2 4 1 3 2 1 5 1 3 3 3 2 10 1 2 3 4 5 6 7 8 9 10 3 3 3 2
输出#1
10111 0001 00111 1111111111 000
说明/提示
In the first test case, a=[1,5,3,4,2].
- The 1-compression of a is [1,5,3,4,2] and it is a permutation.
- The 2-compression of a is [1,3,3,2] and it is not a permutation, since 3 appears twice.
- The 3-compression of a is [1,3,2] and it is a permutation.
- The 4-compression of a is [1,2] and it is a permutation.
- The 5-compression of a is [1] and it is a permutation.
在第一个测试用例中,a=[1,5,3,4,2]。
- a 的 1-压缩为 [1,5,3,4,2],它是一个排列。
- a 的 2-压缩为 [1,3,3,2],它不是一个排列,因为 3 出现了两次。
- a 的 3-压缩为 [1,3,2],它是一个排列。
- a 的 4-压缩为 [1,2],它是一个排列。
- a 的 5-压缩为 [1],它是一个排列。
输入解题思路,AI测评打分。不知道怎么写?