제출 #1135610

#제출 시각아이디문제언어결과실행 시간메모리
1135610Joseph0121September (APIO24_september)C++20
59 / 100
220 ms38420 KiB
#include <bits/stdc++.h> using namespace std; const int maxn = 1e5+5; #define vt vector int N,M; int solve(int n, int m, vector<int> p, vector<vector<int>> vv){ ios_base::sync_with_stdio(0); cin.tie(NULL); N = n; M = m; vt<vt<vt<int>>> e(m,vt<vt<int>>(N+1)); vt<vt<int>> indeg(m,vt<int>(N+1,0)), indeg2(m,vt<int>(N+1,0)); vt<vt<bool>> visited(M,vt<bool>(N+1,0)); vt<vt<int>> arr(m,vt<int>(N+1)); vector<deque<vector<int>>> s(M); vector<int> cnt(M,0); for(int i = 0;i<N;i++){ int x = p[i]; if(i == 0) continue; for(int j = 0;j<M;j++){ e[j][i].push_back(x); indeg[j][x]++; } } for(int i = 0;i<M;i++){ for(int j = 0;j<N-1;j++){ arr[i][j] = vv[i][j]; } } int ans = 0; for(int i = 0;i<N-1;i++){ bool flag = true; for(int j = 0;j<M;j++){ cnt[j]++; queue<vector<int>> q; q.push({indeg[j][arr[j][i]],arr[j][i]}); visited[j][arr[j][i]] = true; while(q.size()){ vector<int> v = q.front(); // cout<<v[0]<<" "<<v[1]<<endl; if(v[0]!=0) break; cnt[j]--; q.pop(); for(auto k: e[j][v[1]]){ indeg[j][k]-=1; if(indeg[j][k] == 0 &&visited[j][k] && k!=0){ q.push({0,k}); } } } } //check if everyone if 0 for(int j = 0;j<M;j++){ // cout<<cnt[j]<<" "; if(cnt[j]) flag = false; } // cout<<"nxt"<<endl; if(flag) ans++; } // cout<<endl; // cout<<s[0].size()<<" "<<s[1].size()<<endl; return ans; } // int main() { // cout<<solve(3,1,{-1, 0, 0},{{1,2}}); // 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...