编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#5757 #1060. 海明码 Wrong Answer 0 727 ms 25248 K C++ 17 / 1.6 K s230004040 2024-08-17 15:04:13
显示原始代码
#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

// Function to calculate the position of the error
int findErrorPosition(const string &encoded, int t) {
    int errorPos = 0;
    int len = encoded.length();

    for (int i = 0; i < t; ++i) {
        int pos = (1 << i);
        int parity = 0;

        for (int j = pos; j <= len; j += (pos << 1)) {
            for (int k = j; k < j + pos && k <= len; ++k) {
                parity ^= (encoded[k - 1] - '0');
            }
        }

        if (parity != 0) {
            errorPos += pos;
        }
    }

    return errorPos;
}

// Function to decode the Hamming code
string decodeHamming(const string &encoded, int n) {
    int t = log2(n + 1);
    string corrected = encoded;

    // Find the position of the error (if any)
    int errorPos = findErrorPosition(corrected, t);

    // If there is an error, correct it by flipping the bit at errorPos
    if (errorPos != 0) {
        corrected[errorPos - 1] = (corrected[errorPos - 1] == '0') ? '1' : '0';
    }

    // Extract the original data from the corrected string
    string decoded;
    int dataPos = 0;

    for (int i = 1; i <= corrected.length(); ++i) {
        if ((i & (i - 1)) != 0) {  // i is not a power of 2
            decoded.push_back(corrected[i - 1]);
        }
    }

    return decoded;
}

int main() {
    int n;
    cin >> n;

    string encoded;
    cin >> encoded;

    string decoded = decodeHamming(encoded, n);
    cout << decoded << endl;

    return 0;
}
子任务 #1
Wrong Answer
得分:0
测试点 #1
Wrong Answer
得分:0
用时:3 ms
内存:384 KiB

输入文件(hamming1.in

3
101000

答案文件(hamming1.out

101

用户输出

100

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #2
Wrong Answer
得分:0
用时:4 ms
内存:384 KiB

输入文件(hamming2.in

3
110011

答案文件(hamming2.out

010

用户输出

011

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #3
Wrong Answer
得分:0
用时:2 ms
内存:384 KiB

输入文件(hamming3.in

3
011111

答案文件(hamming3.out

001

用户输出

111

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #4
Wrong Answer
得分:0
用时:3 ms
内存:384 KiB

输入文件(hamming4.in

3
110001

答案文件(hamming4.out

111

用户输出

001

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #5
Wrong Answer
得分:0
用时:4 ms
内存:288 KiB

输入文件(hamming5.in

7
00101000111

答案文件(hamming5.out

0010100

用户输出

1110111

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #6
Wrong Answer
得分:0
用时:4 ms
内存:284 KiB

输入文件(hamming6.in

7
10111010110

答案文件(hamming6.out

1111101

用户输出

1100110

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #7
Wrong Answer
得分:0
用时:3 ms
内存:384 KiB

输入文件(hamming7.in

7
11111100001

答案文件(hamming7.out

1111111

用户输出

1110001

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #8
Wrong Answer
得分:0
用时:3 ms
内存:384 KiB

输入文件(hamming8.in

7
01100010100

答案文件(hamming8.out

0111001

用户输出

1000100

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #9
Wrong Answer
得分:0
用时:3 ms
内存:384 KiB

输入文件(hamming9.in

1011
11010100110000101111001100101011110101011000000000011110111010001110010100000100101100011001001
<927 bytes omitted>

答案文件(hamming9.out

1101010011000010111100110010101111010101100000000001111011101000111001010000010010110001100100111101
<911 bytes omitted>

用户输出

00101100001111100110010101110101011000000000011110111010011100101000001001011000110010011110100010011111100100100001100010101111
<885 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #10
Wrong Answer
得分:0
用时:2 ms
内存:244 KiB

输入文件(hamming10.in

823
100110001001000111000001101010111100001101111000001101101010110000111101100001100100011000100001
<738 bytes omitted>

答案文件(hamming10.out

1001100010010001110000011010101111000011011110000011011010101100001111011000011001000110001000010011
<723 bytes omitted>

用户输出

01001001000110000011010101110000110111100000110110101011000111101100001100100011000100001001111011101100110001000001111010010000
<697 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #11
Wrong Answer
得分:0
用时:3 ms
内存:384 KiB

输入文件(hamming11.in

958
101100100011110000010111000111010011100001001001011100100011011010100011000101110101101100001010
<873 bytes omitted>

答案文件(hamming11.out

1011001000111100000101110001110100111000010010010111001000110110101000110001011101011011000010101011
<858 bytes omitted>

用户输出

10010011110000101110001110001110000100100101110010001101110100011000101110101101100001010101100101001001100000001011010100011001
<832 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #12
Wrong Answer
得分:0
用时:37 ms
内存:2756 KiB

输入文件(hamming12.in

918908
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<918836 bytes omitted>

答案文件(hamming12.out

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<918808 bytes omitted>

用户输出

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<918782 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #13
Wrong Answer
得分:0
用时:44 ms
内存:3480 KiB

输入文件(hamming13.in

1031714
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<1031643 bytes omitted>

答案文件(hamming13.out

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<1031614 bytes omitted>

用户输出

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<1031588 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #14
Wrong Answer
得分:0
用时:35 ms
内存:2588 KiB

输入文件(hamming14.in

867870
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<867798 bytes omitted>

答案文件(hamming14.out

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<867770 bytes omitted>

用户输出

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<867744 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #15
Wrong Answer
得分:0
用时:40 ms
内存:3420 KiB

输入文件(hamming15.in

1048575
01000000000000101001010011000110010010010000010110101010011101100100001001100011111001011000
<1048504 bytes omitted>

答案文件(hamming15.out

0100000000000010100101001100011001001001000001011010101001110110010000100110001111100101100000001100
<1048475 bytes omitted>

用户输出

00000000001100101001100011010010010000010110101010011101101000010011000111110010110000000110000100101000010001011111001110010001
<1048448 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #16
Wrong Answer
得分:0
用时:42 ms
内存:3512 KiB

输入文件(hamming16.in

1048575
11001111010100010110010101101011100111010011011101110001110110001111110111100110101010010111
<1048504 bytes omitted>

答案文件(hamming16.out

1100111101010001011001010110101110011101001101110111000111011000111111011110011010101001011111010100
<1048475 bytes omitted>

用户输出

01110101000011001010110101100111010011011101110001110110011111101111001101010100101111101010011000101111111100011111000101100110
<1048448 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #17
Wrong Answer
得分:0
用时:59 ms
内存:3448 KiB

输入文件(hamming17.in

1048575
10011011000011001111000110111101001000101011011000110010011101000101000001100100001101000100
<1048504 bytes omitted>

答案文件(hamming17.out

1001101100001100111100011011110100100010101101100011001001110100010100000110010000110100010011011001
<1048475 bytes omitted>

用户输出

01010000110111100011011110001000101011011000110010011101001010000011001000011010001001101100110011011010110001101001011010111101
<1048448 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #18
Wrong Answer
得分:0
用时:42 ms
内存:3484 KiB

输入文件(hamming18.in

1039660
01011010111000011001110110101010001010100111111110000100001100000101100011010100010001011001
<1039589 bytes omitted>

答案文件(hamming18.out

0101101011100001100111011010101000101010011111111000010000110000010110001101010001000101100101111001
<1039560 bytes omitted>

用户输出

01011110000100111011010101001010100111111110000100001100001011000110101000100010110010111100100100011111001101000011001010011100
<1039534 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #19
Wrong Answer
得分:0
用时:29 ms
内存:2472 KiB

输入文件(hamming19.in

712842
001100101011011110011101011010010000100000110101100110110111010000011010111010100101010001110
<712770 bytes omitted>

答案文件(hamming19.out

0011001010110111100111010110100100001000001101011001101101110100000110101110101001010100011101000101
<712742 bytes omitted>

用户输出

10011011011100111010110100000010000011010110011011011101000011010111010100101010001110100010110110011000111111011110010000011101
<712716 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0
测试点 #20
Wrong Answer
得分:0
用时:365 ms
内存:25248 KiB

输入文件(hamming20.in

9631168
11110110000110010011010101001000100100101011010010110010010010101010110010111010101000000001
<9631101 bytes omitted>

答案文件(hamming20.out

1111011000011001001101010100100010010010101101001011001001001010101011001011101010100000000101101110
<9631068 bytes omitted>

用户输出

10110001100001101010100100100100101011010010110010010010110101100101110101010000000010110111010011110011100100101010011100101111
<9631042 bytes omitted>

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0