codeforces 1607D.Blue-Red Permutation

该博客讨论了如何解决Codeforces上的问题1607D,即给定一个蓝红涂色的数组,通过蓝色元素减1或红色元素加1的操作,判断能否将数组变为1到n的排列。博主提出了一个贪心策略,首先从前向后检查,再从后向前检查,以确定能否达到目标。然而,最初的尝试未能通过所有测试用例。接着,博主提出使用结构体或对字符和数字进行排序的方法来判断是否存在可行的转换路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

D. Blue-Red Permutation

You are given an array of integers a of length n. The elements of the
array can be either different or the same.

Each element of the array is colored either blue or red. There are no
unpainted elements in the array. One of the two operations described
below can be applied to an array in a single step:

either you can select any blue element and decrease its value by 1; or
you can select any red element and increase its value by 1. Situations
in which there are no elements of some color at all are also possible.
For example, if the whole array is colored blue or red, one of the
operations becomes unavailable.

Determine whether it is possible to make 0 or more steps such that the
resulting array is a permutation of numbers from 1 to n?

In other words, check whether there exists a sequence of steps
(possibly empty) such that after applying it, the array a contains in
some order all numbers from 1 to n (inclusive), each exactly once.

Input The first line contains an integer t (1≤t≤104) — the number of
input data sets in the test.

The description of each set of input data consists of three lines. The
first line contains an integer n (1≤n≤2⋅105) — the length of the
original array a. The second line contains n integers a1, a2, …, an
(−109≤ai≤109) — the array elements themselves.

The third line has length n and consists exclusively of the letters
‘B’ and/or ‘R’: ith character is ‘B’ if ai is colored blue, and is ‘R’
if colored red.

It is guaranteed that the sum of n over all input sets does not exceed
2⋅105.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值