제출 #1227134

#제출 시각아이디문제언어결과실행 시간메모리
1227134brinton디지털 회로 (IOI22_circuit)C++20
18 / 100
3088 ms3900 KiB
#include "circuit.h" #include <bits/stdc++.h> #define MOD 1000002022 using namespace std; vector<vector<int>> child; vector<long long> black,white; int N,M; void init(int iN, int iM, vector<int> P, vector<int> A) { N = iN,M = iM; child.resize(N); black.resize(N+M); white.resize(N+M); for(int i = 1;i < P.size();i++){ child[P[i]].push_back(i); } for(int i = 0;i < M;i++){ if(A[i] == 1){ //black black[N+i] = 1; }else{ // white white[N+i] = 1; } } } int count_ways(int L, int R) { for(int i = L;i <= R;i++){ swap(black[i],white[i]); } for(int i = N-1;i >= 0;i--){ long long cblack = 0,tot = 1; for(auto c:child[i]){ cblack = (cblack*(white[c]+black[c])+(black[c]*tot))%MOD; tot = tot*(white[c]+black[c])%MOD; } tot *= child[i].size()%MOD; black[i] = cblack; white[i] = (tot-cblack+MOD)%MOD; } return black[0]; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...