QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#792683 | #4564. Digital Circuit | _8_8_# | 0 | 30ms | 13120kb | C++20 | 1.3kb | 2024-11-29 12:57:05 | 2024-11-29 12:57:05 |
Judging History
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%