为什么我在这里收到SIGABRT?

时间:2015-12-08 14:17:39

标签: sigabrt

我在这里收到SIGABRT错误。我不明白为什么。这个你能帮我吗。它在我的计算机上运行良好,但在提交它时,它在第一个测试用例上给出了一个SIGABRT。分配的内存仅为10 ^ 5的顺序,我使用了向量而不是数组,即使这样也会出现此错误。

#include <bits/stdc++.h>
using namespace std;

int main(){
int T;
scanf("%d", &T);
while(T--){
    string s;
    cin>>s;
    int N;
    string str;
    scanf("%d", &N);
    vector <string> f;
    for (int i=0; i<N; i++){
        cin>>str;
        f.push_back(str);
    }
    vector<int> op;
    op.resize(10, 0);

    for (int i=0; i<N; i++){
        for (int j=0;j <10; j++){
            op[i] *= 2;
            op[i] += ((f[i][j] == '+')? 1: 0);
        }
    }

    int sint=0;
    for (int i=0; i<10; i++){
        sint*=2;
        sint += ((s[i] == 'b')? 1: 0);
    }

    int allb = 1023;
    int tgt = allb ^ sint;

    vector <long long int> prev, curr;
    prev.resize(1027, 0);
    curr.resize(1027, 0);   

    prev[op[0]] = 1;
    prev[0] = 1;
    curr[0] = 1;
    curr[op[0]] = 1;
    if (op[0] == 0){
        curr[op[0]]++;
        prev[op[0]]++;
    }

    for (int i=1; i<N; i++){
        for (int j=0; j<=1023; j++){
            curr[j] = (prev[j] + prev[j ^ op[i]])%1000000007;
        }
        for (int j=0; j<=1023; j++)
            prev[j] = curr[j];
    }

    cout<<curr[tgt]<<endl;
}
}

0 个答案:

没有答案