제출 #627313

#제출 시각UTC-0아이디문제언어결과실행 시간메모리
6273132022-08-12 12:45:12haojiandan디지털 회로 (IOI22_circuit)C++17
100 / 100
1020 ms20512 KiB
#include "circuit.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=(1e9)+2022;
const int maxn=(2e5)+10;
vector<int> son[maxn];
int prod[maxn],n,m;
void dfs1(int u) {
prod[u]=1;
if ((int)son[u].size()==0) return;
prod[u]=(int)son[u].size();
for (int &v : son[u]) dfs1(v),prod[u]=(ll)prod[u]*prod[v]%mod;
}
int sum[maxn];
int pre[maxn],suf[maxn];
void dfs2(int u) {
int sz=(int)son[u].size();
for (int i=0;i<sz;i++) pre[i]=(ll)(i==0?1:pre[i-1])*prod[son[u][i]]%mod;
for (int i=sz-1;i>=0;i--) suf[i]=(ll)(i==sz-1?1:suf[i+1])*prod[son[u][i]]%mod;
for (int i=0;i<sz;i++) {
int v=son[u][i];
sum[v]=sum[u];
if (i) sum[v]=(ll)sum[v]*pre[i-1]%mod;
if (i<sz-1) sum[v]=(ll)sum[v]*suf[i+1]%mod;
}
for (int &v : son[u]) {
dfs2(v);
}
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#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...