# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
786360 | 2023-07-18T06:59:28 Z | ono_de206 | 디지털 회로 (IOI22_circuit) | C++17 | 3000 ms | 13148 KB |
#include "circuit.h" #include<bits/stdc++.h> using namespace std; #define in insert #define all(x) x.begin(),x.end() #define pb push_back #define eb emplace_back #define ff first #define ss second //#define int long long typedef long long ll; typedef vector<int> vi; typedef set<int> si; typedef multiset<int> msi; typedef pair<int, int> pii; typedef vector<pii> vpii; const int mxn = 2e5 + 10; const long long mod = 1000002022; int n, m; long long pp[mxn][2]; vector<long long> dp[mxn]; bool a[mxn]; vector<long long> g[mxn]; void init(int n, int m, vector<int> p, vector<int> a) { ::n = n; ::m = m; for(int i = 1; i < n + m; i++) { g[p[i]].pb(i); } for(int i = 0; i < m; i++) { ::a[i + n] = a[i]; } } void dfs(int to) { pp[to][0] = pp[to][1] = 0; if(to >= n) { if(a[to]) pp[to][1] = 1; else pp[to][0] = 1; return; } dp[to].resize(g[to].size() + 1); dp[to][0] = 1; for(int x : g[to]) { dfs(x); for(int j = g[to].size(); j > 0; j--) { dp[to][j] = ((dp[to][j] * pp[x][0]) + (dp[to][j - 1] * pp[x][1])) % mod; } dp[to][0] = (dp[to][0] * pp[x][0]) % mod; } pp[to][0] = (dp[to][0] * (long long)g[to].size()) % mod; for(int i = 1; i <= g[to].size(); i++) { pp[to][1] = (pp[to][1] + dp[to][i]) % mod; pp[to][0] = (pp[to][0] + dp[to][i] * (long long)g[to].size()) % mod; } } int count_ways(int L, int R) { for(int i = L; i <= R; i++) { a[i] = !a[i]; } dfs(0); return pp[0][1]; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 9680 KB | 2nd lines differ - on the 1st token, expected: '2', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 9680 KB | 2nd lines differ - on the 1st token, expected: '2', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 9680 KB | 2nd lines differ - on the 1st token, expected: '2', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3075 ms | 13148 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3075 ms | 13148 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 9680 KB | 2nd lines differ - on the 1st token, expected: '2', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 9680 KB | 2nd lines differ - on the 1st token, expected: '2', found: '1' |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 9680 KB | 2nd lines differ - on the 1st token, expected: '2', found: '1' |
2 | Halted | 0 ms | 0 KB | - |