CF1729F.Kirei and the Linear Function
普及+/提高
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Given the string s of decimal digits (0-9) of length n.
A substring is a sequence of consecutive characters of a string. The substring of this string is defined by a pair of indexes — with its left and right ends. So, each pair of indexes (l,r), where 1≤l≤r≤n, corresponds to a substring of the string s. We will define as v(l,r) the numeric value of the corresponding substring (leading zeros are allowed in it).
For example, if n=7, s="1003004", then v(1,3)=100, v(2,3)=0 and v(2,7)=3004.
You are given n, s and an integer w (1≤w<n).
You need to process m queries, each of which is characterized by 3 numbers li,ri,ki (1≤li≤ri≤n;0≤ki≤8).
The answer to the ith query is such a pair of substrings of length w that if we denote them as (L1,L1+w−1) and (L2,L2+w−1), then:
- L1=L2, that is, the substrings are different;
- the remainder of dividing a number v(L1,L1+w−1)⋅v(li,ri)+v(L2,L2+w−1) by 9 is equal to ki.
If there are many matching substring pairs, then find a pair where L1 is as small as possible. If there are many matching pairs in this case, then minimize L2.
Note that the answer may not exist.
给定一个长度为 n 的十进制数字字符串 s(字符为 0–9)。
子串是指字符串中连续的一段字符。该字符串的一个子串由其左右端点的下标对唯一确定。因此,每一对下标 (l,r)(满足 1≤l≤r≤n)对应字符串 s 的一个子串。我们记 v(l,r) 为该子串所表示的数值(允许前导零)。
例如,若 n=7,s="1003004",则 v(1,3)=100,v(2,3)=0,v(2,7)=3004。
你将获得 n、s 和一个整数 w(1≤w<n)。
你需要处理 m 个查询,每个查询由三个整数 li,ri,ki 描述(满足 1≤li≤ri≤n;0≤ki≤8)。
第 i 个查询的答案是一对长度均为 w 的子串,记作 (L1,L1+w−1) 和 (L2,L2+w−1),满足:
- L1=L2,即这两个子串位置不同;
- 数值 v(L1,L1+w−1)⋅v(li,ri)+v(L2,L2+w−1) 除以 9 的余数等于 ki。
若存在多组满足条件的子串对,则选择其中 L1 最小的一组;若仍有多个,则在这些中选择 L2 最小的一组。
注意:答案可能不存在。
输入格式
The first line contains a single integer t (1≤t≤104) — number of input test cases.
The first line of each test case contains a string s, which contains only the characters 0-9 and has a length n (2≤n≤2⋅105).
The second line contains two integers w,m (1≤w<n,1≤m≤2⋅105), where n — is the length of the given string s. The number w denotes the lengths of the substrings being searched for, and m is the number of queries to be processed.
The following m lines contain integers li,ri,ki (1≤li≤ri≤n, 0≤ki≤8) — ith query parameters.
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105. It is also guaranteed that the sum of m over all test cases does not exceed 2⋅105.
第一行包含一个整数 t(1≤t≤104)—— 输入测试用例的数量。
每个测试用例的第一行包含一个字符串 s,该字符串仅由字符 0–9 组成,长度为 n(2≤n≤2⋅105)。
第二行包含两个整数 w,m(1≤w<n, 1≤m≤2⋅105),其中 n 是给定字符串 s 的长度。数值 w 表示所查找子串的长度,m 表示需处理的查询数量。
接下来的 m 行每行包含三个整数 li,ri,ki(1≤li≤ri≤n, 0≤ki≤8)—— 第 i 个查询的参数。
保证所有测试用例中 n 的总和不超过 2⋅105。同时保证所有测试用例中 m 的总和不超过 2⋅105。
输出格式
For each request, print in a separate line:
- left borders of the required substrings: L1 and L2;
- -1 -1 otherwise, if there is no solution.
If there are several solutions, minimize L1 first, and minimize L2 second.
对于每个查询,在单独一行中输出:
- 所需子串的左边界:L1 和 L2;
- 若无解,则输出
-1 -1。
若存在多个解,优先最小化 L1,其次最小化 L2。
输入输出样例
输入#1
5 1003004 4 1 1 2 1 179572007 4 2 2 7 3 2 7 4 111 2 1 2 2 6 0000 1 2 1 4 0 1 4 1 484 1 5 2 2 0 2 3 7 1 2 5 3 3 8 2 2 6
输出#1
2 4 1 5 1 2 -1 -1 1 2 -1 -1 1 3 1 3 -1 -1 -1 -1 -1 -1
说明/提示
Consider the first test case of example inputs. In this test case n=7, s="1003004", w=4 and one query l1=1, r1=2, k1=1. Note that v(1,2)=10. We need to find a pair of substrings of length 4 such that v(L1,L1+3)⋅10+v(L2,L2+3) has a remainder of k1=1 when divided by 9. The values L1=2,L2=4 actually satisfy all the requirements: v(L1,L1+w−1)=v(2,5)=30, v(L2,L2+w−1)=v(4,7)=3004. Indeed, 30⋅10+3004=3304, which has a remainder of 1 when divided by 9. It can be shown that L1=2 is the minimum possible value, and L2=4 is the minimum possible with L1=2.
考虑示例输入的第一个测试用例。在此测试用例中,n=7,s="1003004",w=4,且有一个查询:l1=1,r1=2,k1=1。注意 v(1,2)=10。我们需要找到一对长度为 4 的子串,使得 v(L1,L1+3)⋅10+v(L2,L2+3) 除以 9 的余数为 k1=1。实际上,取 L1=2、L2=4 满足所有要求:v(L1,L1+w−1)=v(2,5)=30,v(L2,L2+w−1)=v(4,7)=3004。确实,30⋅10+3004=3304,而 3304 除以 9 的余数为 1。可以证明,L1=2 是可能的最小值,且在 L1=2 的前提下,L2=4 是可能的最小值。
输入解题思路,AI测评打分。不知道怎么写?