You are given a binary string s๐ of length n๐, consisting of zeros and ones. You can perform the following operation exactly once:Choose an integer p๐ (1โคpโคn1โค๐โค๐).Reverse the substring s1s2โฆsp๐ 1๐ 2โฆ๐ ๐. After this step, the string s1s2โฆsn๐ 1๐ 2โฆ๐ ๐ will become spspโ1โฆs1sp+1sp+2โฆsn๐ ๐๐ ๐โ1โฆ๐ 1๐ ๐+1๐ ๐+2โฆ๐ ๐.Then, perform a cyclic shift of the string s๐ to the left p๐ times. After this step, the initial string s1s2โฆsn๐ 1๐ 2โฆ๐ ๐ will become sp+1sp+2โฆsnspspโ1โฆs1๐ ๐+1๐ ๐+2โฆ๐ ๐๐ ๐๐ ๐โ1โฆ๐ 1.For example, if you apply the operation to the string 110001100110 with p=3๐=3, after the second step, the string will become 011001100110, and after the third step, it will become 001100110011.A string s๐ is called k๐-proper if two conditions are met:s1=s2=โฆ=sk๐ 1=๐ 2=โฆ=๐ ๐;si+kโ si๐ ๐+๐โ ๐ ๐ for any i๐ (1โคiโคnโk1โค๐โค๐โ๐).For example, with k=3๐=3, the strings 000, 111000111, and 111000 are k๐-proper, while the strings 000000, 001100, and 1110000 are not.You are given an integer k๐, which is a divisor of n๐. Find an integer p๐ (1โคpโคn1โค๐โค๐) such that after performing the operation, the string s๐ becomes k๐-proper, or determine that it is impossible. Note that if the string is initially k๐-proper, you still need to apply exactly one operation to it.InputEach test consists of multiple test cases. The first line contains one integer t๐ก (1โคtโค1041โค๐กโค104)ย โ the number of test cases. The description of the test cases follows.The first line of each test case contains two integers n๐ and k๐ (1โคkโคn1โค๐โค๐, 2โคnโค1052โค๐โค105)ย โ the length of the string s๐ and the value of k๐. It is guaranteed that k๐ is a divisor of n๐.The second line of each test case contains a binary string s๐ of length n๐, consisting of the characters 0 and 1.It is guaranteed that the sum of n๐ over all test cases does not exceed 2โ 1052โ 105.OutputFor each test case, output a single integerย โ the value of p๐ to make the string k๐-proper, or โ1โ1 if it is impossible.If there are multiple solutions, output any of them.ExampleinputCopy78 4111000014 2111012 31110001000115 5000006 11010018 40111000112 2110001100110outputCopy3-1754-13NoteIn the first test case, if you apply the operation with p=3๐=3, after the second step of the operation, the string becomes 11100001, and after the third step, it becomes 00001111. This string is 44-proper.In the second test case, it can be shown that there is no operation after which the string becomes 22-proper.In the third test case, if you apply the operation with p=7๐=7, after the second step of the operation, the string becomes 100011100011, and after the third step, it becomes 000111000111. This string is 33-proper.In the fourth test case, after the operation with any p๐, the string becomes 55-proper.
Question
You are given a binary string s๐ of length n๐, consisting of zeros and ones. You can perform the following operation exactly once:Choose an integer p๐ (1โคpโคn1โค๐โค๐).Reverse the substring s1s2โฆsp๐ 1๐ 2โฆ๐ ๐. After this step, the string s1s2โฆsn๐ 1๐ 2โฆ๐ ๐ will become spspโ1โฆs1sp+1sp+2โฆsn๐ ๐๐ ๐โ1โฆ๐ 1๐ ๐+1๐ ๐+2โฆ๐ ๐.Then, perform a cyclic shift of the string s๐ to the left p๐ times. After this step, the initial string s1s2โฆsn๐ 1๐ 2โฆ๐ ๐ will become sp+1sp+2โฆsnspspโ1โฆs1๐ ๐+1๐ ๐+2โฆ๐ ๐๐ ๐๐ ๐โ1โฆ๐ 1.For example, if you apply the operation to the string 110001100110 with p=3๐=3, after the second step, the string will become 011001100110, and after the third step, it will become 001100110011.A string s๐ is called k๐-proper if two conditions are met:s1=s2=โฆ=sk๐ 1=๐ 2=โฆ=๐ ๐;si+kโ si๐ ๐+๐โ ๐ ๐ for any i๐ (1โคiโคnโk1โค๐โค๐โ๐).For example, with k=3๐=3, the strings 000, 111000111, and 111000 are k๐-proper, while the strings 000000, 001100, and 1110000 are not.You are given an integer k๐, which is a divisor of n๐. Find an integer p๐ (1โคpโคn1โค๐โค๐) such that after performing the operation, the string s๐ becomes k๐-proper, or determine that it is impossible. Note that if the string is initially k๐-proper, you still need to apply exactly one operation to it.InputEach test consists of multiple test cases. The first line contains one integer t๐ก (1โคtโค1041โค๐กโค104)ย โ the number of test cases. The description of the test cases follows.The first line of each test case contains two integers n๐ and k๐ (1โคkโคn1โค๐โค๐, 2โคnโค1052โค๐โค105)ย โ the length of the string s๐ and the value of k๐. It is guaranteed that k๐ is a divisor of n๐.The second line of each test case contains a binary string s๐ of length n๐, consisting of the characters 0 and 1.It is guaranteed that the sum of n๐ over all test cases does not exceed 2โ 1052โ 105.OutputFor each test case, output a single integerย โ the value of p๐ to make the string k๐-proper, or โ1โ1 if it is impossible.If there are multiple solutions, output any of them.ExampleinputCopy78 4111000014 2111012 31110001000115 5000006 11010018 40111000112 2110001100110outputCopy3-1754-13NoteIn the first test case, if you apply the operation with p=3๐=3, after the second step of the operation, the string becomes 11100001, and after the third step, it becomes 00001111. This string is 44-proper.In the second test case, it can be shown that there is no operation after which the string becomes 22-proper.In the third test case, if you apply the operation with p=7๐=7, after the second step of the operation, the string becomes 100011100011, and after the third step, it becomes 000111000111. This string is 33-proper.In the fourth test case, after the operation with any p๐, the string becomes 55-proper.
Solution
This problem is about manipulating binary strings to make them k-proper. Here's a step-by-step guide on how to approach it:
- Understand the problem: You are given a binary string of length n and an integer k. You can perform a
Similar Questions
Write a program that takes in a positive integer as input, and outputs a string of 1's and 0's representing the integer in reverse binary. For an integer x, the algorithm is:As long as x is greater than 0 Output x % 2 (remainder is either 0 or 1) x = x / 2Note: The above algorithm outputs the 0's and 1's in reverse order.Ex: If the input is:6the output is:0116 in binary is 110; the algorithm outputs the bits in reverse.
Make Bob WinAlice and Bob are playing a game. They have with them a binary string ๐S.Alice and Bob alternate making moves, with Alice going first.On their turn, a player does the following:Choose a non-empty contiguous substring of ๐S all of whose characters are the same, delete it from ๐S, and concatenate the remaining parts.More formally, choose integers ๐ฟL and ๐ R such that 1โค๐ฟโค๐ โคโฃ๐โฃ1โคLโคRโคโฃSโฃ and ๐๐ฟ=๐๐ฟ+1=โฆ=๐๐ S Lโ =S L+1โ =โฆ=S Rโ , and replace ๐S with the string ๐1๐2โฆ๐๐ฟโ1๐๐ +1๐๐ +2โฆ๐โฃ๐โฃS 1โ S 2โ โฆS Lโ1โ S R+1โ S R+2โ โฆS โฃSโฃโ .This reduces the length of ๐S by ๐ โ๐ฟ+1RโL+1.Alice wins immediately when ๐S doesn't contain any occurrence of 11, while Bob wins immediately when ๐S doesn't contain any occurrence of 00. Both players will play to win.Note that if the string initially doesn't contain any occurrences of 00, Bob wins before any moves are made.Bob wants to win the game, so before the game starts, he can flip some characters of ๐S.That is, Bob can choose an index ๐i (1โค๐โค๐1โคiโคN), and set ๐๐S iโ to 00 if it was originally 11, and vice versa.Find the minimum number of flips Bob needs to make to ensure he can win.Input FormatThe first line of input will contain a single integer ๐T, denoting the number of test cases.Each test case consists of two lines of input.The first line of each test case contains one integer ๐N โ the length of ๐S.The second line contains the binary string ๐S.Output FormatFor each test case, output on a new line the minimum number of flips required in ๐S to make Bob win.Constraints1โค๐โค1051โคTโค10 5 1โค๐โค2โ 1051โคNโค2โ 10 5 ๐S is a binary string, i.e, contains only the characters 00 and 11.The sum of ๐N over all test cases won't exceed 2โ 1052โ 10 5 .Sample 1:InputOutput31031116011001101Explanation:Test case 11: Bob changes the only character of ๐S, resulting in ๐=1S=1.There are no 00's in this string, so Bob wins automatically.Test case 22: There are no 00's in the string, so Bob wins without having to change anything.Test case 33: Bob can flip the first character of the string, turning it into 111001111001.It can be shown that if the game is played on this string, Bob will win; whereas he would lose if the game is played on the initial string.
You are given a binary string s that contains at least one '1'.You have to rearrange the bits in such a way that the resulting binary number is the maximum odd binary number that can be created from this combination.Return a string representing the maximum odd binary number that can be created from the given combination.Note that the resulting string can have leading zeros.
Given a binary string s. Perform r iterations on string s, where in each iteration 0 becomes 01 and 1 becomes 10. Find the nth character (considering 0 based indexing) of the string after performing these r iterations (see examples for better understanding).
You are given a positive integer n.A binary string x is valid if all substrings of x of length 2 contain at least one "1".Return all valid strings with length n, in any order.ย Example 1:Input: n = 3Output: ["010","011","101","110","111"]Explanation:The valid strings of length 3 are: "010", "011", "101", "110", and "111".Example 2:Input: n = 1Output: ["0","1"]Explanation:The valid strings of length 1 are: "0" and "1".
Upgrade your grade with Knowee
Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.