# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
803198 | yeyso | 디지털 회로 (IOI22_circuit) | C++17 | 3015 ms | 7248 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "circuit.h"
#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9+2022;
#include <vector>
vector<long long> dp0;
vector<long long> dp1;
vector<vector<long long>> adj;
void dfs(long long u, long long v){
//cout << u << " ";
if(adj[u].size() == 2){
long long l = adj[u][0];
long long r = adj[u][1];
dfs(l, u);
dfs(r, u);
dp0[u] = (dp1[l] * dp0[r] % mod + dp1[r] * dp0[l] % mod + 2 * dp0[l] * dp0[r] % mod) % mod;
dp1[u] = (dp1[l] * dp0[r] % mod + dp1[r] * dp0[l] % mod + 2 * dp1[l] * dp1[r] % mod) % mod;
} else {
}
}
long long n, m;
void init(int N, int M, vector<int> P, vector<int> A) {
n = N; m = M;
dp0.resize(N+M, 0);
dp1.resize(N+M, 0);
for(long long i = 0; i < A.size(); i ++){
dp0[i+N] = A[i] ^ 1;
dp1[i+N] = A[i];
}
//for(long long i = 0; i < dp1.size(); i ++){
//cout << dp1[i] << " ";
//} cout << "\n";
vector<vector<long long>> adj0(N+M, vector<long long>());
for(long long i = 0; i < P.size(); i ++){
//adj0[i].push_back(P[i]);
if(i != 0) adj0[P[i]].push_back(i);
}
adj = adj0;
}
int count_ways(int L, int R) {
//return 0;
for(long long i = L; i <= R; i ++){
dp0[i] = dp0[i] ^ 1;
dp1[i] = dp1[i] ^ 1;
}
dfs(0, 0);
//for(long long i = 0; i < dp1.size(); i ++) cout << dp1[i] << " ";
//cout << " | ";
return dp1[0];
}
/*
g++ -std=gnu++17 -O2 -Wall -pipe -static -o circuit stub.cpp circuit.cpp
dp1[i] = dp1[u] * dp0[v] + dp0[u] * dp1[v] + 2 * dp1[u] * dp1[v]
3 4 3
-1 0 1 2 1 1 0
1 0 1 0
3 4
4 5
3 6
*/
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |