Reconstrucción de cadenas binarias

Reconstrucción de cadenas binarias
Inserte la descripción de la imagen aquí

Título:

Considere el siguiente proceso. Tienes una cadena binaria ww de longitud nw también tiene un número enteroxxx . Construiste una longitud denncadena binariass de ns . Cadena binariasss primeroiiLa selección de i cadenas es la siguiente:
1. Siwi - x w_ (i − x)wi - xExiste y es igual a 1 11 , luegosi s_isyoEs igual a 1 11 .
2. Si $ w_ {i + x} existe y es igual a1 11 , luegosi s_isyoEs igual a 1 11 .
3. Si las dos primeras condiciones no existen, entoncessi s_isyoEs igual a 0 00

Dale la cuerda sssy enteroxxx , construye la cadenawww

Análisis: Las reglas nos dicen si si s_isyoHasta las 111 , luegowi - x w_ {i − x}wi - xwi + x w_ {i + x}wi + xAl menos uno de ellos es 1 11 . Sisi s_isyoEs 0 00 , luegowi - x w_ {i − x}wi - xwi + x w_ {i + x}wi + xTodo 0 00 . Entonces primero ponemoswwestablecer todo w en1 11 , el requisito es0 00 lugares todos se convierten en0 00 . Luego, verifique si la cadena construida cumple con los requisitos. Puedes ver el código.

#include <bits/stdc++.h>
 
using namespace std;
const int maxn = 1e5+10;
char s[maxn];
int x;
char str[maxn];
 
int main() {
    
    
    int _;
    scanf("%d", &_);
    while (_--) {
    
    
        int flag = false;
        scanf("%s%d", s, &x);
        int len = strlen(s);
        for (int i = 0; i < len; i++) {
    
    
            str[i] = '1';
        }
        str[len]='\0';
        for (int i = 0; i < len; ++i) {
    
    
            if (s[i] == '0' && i - x >= 0) str[i - x] = '0';
            if (s[i] == '0' && i + x < len) str[i + x] = '0';
        }
        for (int i = 0; i < len; ++i) {
    
    
            if (s[i] == '0')continue;
            bool flag1 = false;
            if ((i - x >= 0 && str[i - x] == '1') || (i + x < len && str[i + x] == '1')) flag1 = true;
            if (!flag1) {
    
    
                flag = true;
                break;
            }
        }
        if (flag) puts("-1"); else printf("%s\n", str);
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_43601103/article/details/112981832
Recomendado
Clasificación