이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#include "circuit.h"
using namespace std;
long long a,b,c,d,e,i,j,ii,jj,zx,xc,mod=1000002022LL,dp[200009],ALL[200009],f[200009],L,R,pr[200009],sf[200009];
vector <long long> v[200009];
void init(int N, int M, std::vector<int> P, std::vector<int> A) {
a=N+M;
for(ii=1; ii<P.size(); ii++){
i=ii+1;
v[P[ii]+1].push_back(i);
}
for(i=N+1; i<=a; i++){
f[i]=A[i-N-1];
}
}
void dfs(int q, int w){
if(v[q].size()==0){
dp[q]=f[q];ALL[q]=1;
return;
}
ALL[q]=v[q].size();dp[q]=0;
for(vector <long long>::iterator it=v[q].begin(); it!=v[q].end(); it++){
dfs((*it),q);
ALL[q]*=ALL[(*it)];ALL[q]%=mod;
}
long long qw=1;
for(vector <long long>::iterator it=v[q].begin(); it!=v[q].end(); it++){
pr[(*it)]=qw;
qw*=ALL[(*it)];qw%=mod;
}
vector <long long>::iterator it=v[q].end();it--;
qw=1;
for( ; ; ){
sf[(*it)]=qw;
qw*=ALL[(*it)];qw%=mod;
if(it==v[q].begin()) break;
it--;
}
for(vector <long long>::iterator it=v[q].begin(); it!=v[q].end(); it++){
zx=pr[(*it)]*sf[(*it)];zx%=mod;
dp[q]+=dp[(*it)]*zx;dp[q]%=mod;
}
}
int count_ways(int LL, int RR) {
L=LL+1;R=RR+1;
for(i=L; i<=R; i++) f[i]^=1;
dfs(1,0);
/*for(i=1; i<=a; i++){
cout<<dp[i]<<" "<<pr[i]<<" "<<sf[i]<<"\n";
}*/
return dp[1];
}
컴파일 시 표준 에러 (stderr) 메시지
circuit.cpp: In function 'void init(int, int, std::vector<int>, std::vector<int>)':
circuit.cpp:8:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
8 | for(ii=1; ii<P.size(); ii++){
| ~~^~~~~~~~~
# | 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... |