zoukankan      html  css  js  c++  java
  • Binary Period CodeForces

    Let's say string ss has period kk if si=si+ksi=si+k for all ii from 11 to |s|k|s|−k (|s||s| means length of string ss) and kk is the minimum positive integer with this property.

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

    You are given string tt consisting only of 0's and 1's and you need to find such string ss that:

    1. String ss consists only of 0's and 1's;
    2. The length of ss doesn't exceed 2|t|2⋅|t|;
    3. String tt is a subsequence of string ss;
    4. String ss has smallest possible period among all strings that meet conditions 1—3.

    Let us recall that tt is a subsequence of ss if tt can be derived from ss by deleting zero or more elements (any) without changing the order of the remaining elements. For example, tt="011" is a subsequence of ss="10101".

    Input

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

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

    Output

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

    Example

    Input
    4
    00
    01
    111
    110
    
    Output
    00
    01
    11111
    1010

    Note

    In the first and second test cases, s=ts=t since it's already one of the optimal solutions. Answers have periods equal to 11 and 22, respectively.

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

    水思维题,,有‘1’有‘0’就1010...走起,else 输出一列s[1]

    #include <bits/stdc++.h>
    using namespace std;
    char s[200100];
    int main() {
        int t;
        scanf("%d",&t);
        while(t--) {
            scanf("%s",s+1);
            int n=strlen(s+1);
            bool a=0,b=0;
            for (int i=1; i<=n; i++) {
                if(s[i]=='0') a=1;
                if(s[i]=='1') b=1;
            }
            if(!a||!b) {
                for (int i=1; i<=n; i++)
                                printf("%c",s[1]);
            } 
                     else {
                for (int i=1; i<=n; i++)
                                printf("10");
            }
            puts("");
        }
        return 0;
    }
  • 相关阅读:
    hdu1158Employment Planning
    hdu1244Max Sum Plus Plus Plus
    .net客户端根据url获取字符串及图片,并保存本地
    wpf 3d文字
    .NET json格式 使用Newtonsoft.Json.JsonConvert类 附读取文件方法
    c# 按钮点击(开启||置顶)全局变量
    WPF 分辨率自适应,获取当前系统分辨率+窗口当前坐标
    WPF 循环读取文件中实现进度条显示
    WPF摄像头拍照+选择是否保存
    WPF Image显示本地照片 判断选择删除
  • 原文地址:https://www.cnblogs.com/xxxsans/p/12785412.html
Copyright © 2011-2022 走看看