QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#792683#4564. Digital Circuit_8_8_#0 30ms13120kbC++201.3kb2024-11-29 12:57:052024-11-29 12:57:05

Judging History

你现在查看的是最新测评结果

  • [2024-11-29 12:57:05]
  • 评测
  • 测评结果:0
  • 用时:30ms
  • 内存:13120kb
  • [2024-11-29 12:57:05]
  • 提交

answer

#include "circuit.h"

#include <bits/stdc++.h>

using namespace std;
const int N = (int)1e5 + 12, MOD = 1000002022;

typedef long long ll;
#define int ll
int n, m, f, a[N];
vector<ll> g[N], dp[N], tdp[N];
void add(int &x, int y) {
    x += y;
    x %= MOD;
}
ll pd[N][2];
void dfs(int v) {
    if(v >= n) {
        pd[v][a[v]] = 1;
        pd[v][1 - a[v]] = 0;
        return;
    }
    for(int to : g[v]) {
        dfs(to);
    }
    pd[v][0] = (pd[g[v][0]][0] * pd[g[v][1]][0]) % MOD;
    assert((int)g[v].size() == 2);
    int x = g[v][0], y = g[v][1];
    pd[v][1] = (pd[x][0] * pd[y][1] % MOD + pd[x][1] * pd[y][0] % MOD + pd[x][1] * pd[y][1] % MOD);
}
void init(int32_t NN, int32_t MM, std::vector<int32_t> P, std::vector<int32_t> A) {
    n = NN;
    m = MM;
    f = n + m;
    for(int i = n; i < f; i++) {
        a[i] = A[i - n];
    }
    for(int i = 1; i < f; i++) {
        g[P[i]].push_back(i);
    }

    for(int i = 0; i < f; i++) {
        dp[i].resize((int)g[i].size() + 1);
        tdp[i].resize((int)g[i].size() + 1);
    }
}

int32_t count_ways(int32_t L, int32_t R) {
    if(n > 1000) return 0;
    for(int i = L; i <= R; i++) {
        a[i] ^= 1;
    }
    dfs(0);
    assert(pd[0][1] >= 0);
    return pd[0][1];
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 4112kb

input:

1 2
-1 0 0
0 0
1 1
2 2
1 2
2 2
1 2
-1 -1
-2 -2

output:

1
1
0
1
1

result:

wrong answer 4th lines differ - expected: '2', found: '1'

Subtask #2:

score: 0
Wrong Answer

Test #9:

score: 0
Wrong Answer
time: 1ms
memory: 5940kb

input:

1 2
-1 0 0
0 0
1 1
2 2
1 2
2 2
1 2
-1 -1
-2 -2

output:

1
1
0
1
1

result:

wrong answer 4th lines differ - expected: '2', found: '1'

Subtask #3:

score: 0
Skipped

Dependency #1:

0%

Subtask #4:

score: 0
Wrong Answer

Test #43:

score: 0
Wrong Answer
time: 30ms
memory: 13120kb

input:

32767 32768
-1 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

wrong answer 3rd lines differ - expected: '431985922', found: '0'

Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Skipped

Dependency #2:

0%

Subtask #7:

score: 0
Skipped

Dependency #3:

0%

Subtask #8:

score: 0
Skipped

Dependency #1:

0%