B. Binary Period ---- Codeforces Round 86 (Rated for Div. 2)

Let’s say string s has period k if si=si+k for all i from 1 to |s|−k (|s| means length of string s) and k is the minimum positive integer with this property.

Some examples of a period: for s=“0101” the period is k=2, for s=“0000” the period is k=1, for s=“010” the period is k=2, for s=“0011” the period is k=4.

You are given string t consisting only of 0’s and 1’s and you need to find such string s that:

String s consists only of 0’s and 1’s;
The length of s doesn’t exceed 2⋅|t|;
String t is a subsequence of string s;
String s has smallest possible period among all strings that meet conditions 1—3.
Let us recall that t is a subsequence of s if t can be derived from s by deleting zero or more elements (any) without changing the order of the remaining elements. For example, t=“011” is a subsequence of s=“10101”.

Input
The first line contains single integer T (1≤T≤100) — the number of test cases.

Next T lines contain test cases — one per line. Each line contains string t (1≤|t|≤100) consisting only of 0’s and 1’s.

Output
Print one string for each test case — string s you needed to find. If there are multiple solutions print any one of them.

Example
inputCopy
4
00
01
111
110
outputCopy
00
01
11111
1010
Note
In the first and second test cases, s=t since it’s already one of the optimal solutions. Answers have periods equal to 1 and 2, respectively.

In the third test case, there are shorter optimal solutions, but it’s okay since we don’t need to minimize the string s. String s has period equal to 1.

思路:这个题自己没做出来,好多的b题都没做出来
如果s中同时存在0和1时,输出10组合即可,否则直接输出s。

原文链接:https://blog.csdn.net/zhaoxinfan/article/details/105895248

#include
#include
#include
#include
#include
 
using namespace std;
 
int main()
{
	int t, i, c = 1;
	char s[1024];
	scanf("%d ", &t);
	while (t--) 
	{
		c = 1;
		scanf("%s", &s);
		for (i = 0; i<strlen(s) - 1; i++)
		{
			if (s[i] != s[i + 1])
			{
				c = 0;
				break;
			}
		}
		if (c == 1) 
		{
			printf("%s\n", s);
		}
		else
		{
			for (i = 0; i<strlen(s); i++) 
			{
				printf("10");
			}
			printf("\n");
		}
	}
	return 0;

————————————————

你可能感兴趣的:(B. Binary Period ---- Codeforces Round 86 (Rated for Div. 2))