結果
問題 | No.2948 move move rotti |
ユーザー | MM |
提出日時 | 2024-10-25 22:34:43 |
言語 | C++23(gcc13) (gcc 13.2.0 + boost 1.83.0) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,691 bytes |
コンパイル時間 | 6,752 ms |
コンパイル使用メモリ | 336,700 KB |
実行使用メモリ | 813,928 KB |
最終ジャッジ日時 | 2024-10-25 22:34:57 |
合計ジャッジ時間 | 10,029 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
6,816 KB |
testcase_01 | AC | 2 ms
6,816 KB |
testcase_02 | AC | 2 ms
6,816 KB |
testcase_03 | MLE | - |
testcase_04 | -- | - |
testcase_05 | -- | - |
testcase_06 | -- | - |
testcase_07 | -- | - |
testcase_08 | -- | - |
testcase_09 | -- | - |
testcase_10 | -- | - |
testcase_11 | -- | - |
testcase_12 | -- | - |
testcase_13 | -- | - |
testcase_14 | -- | - |
testcase_15 | -- | - |
testcase_16 | -- | - |
testcase_17 | -- | - |
testcase_18 | -- | - |
testcase_19 | -- | - |
testcase_20 | -- | - |
testcase_21 | -- | - |
testcase_22 | -- | - |
testcase_23 | -- | - |
testcase_24 | -- | - |
testcase_25 | -- | - |
testcase_26 | -- | - |
testcase_27 | -- | - |
testcase_28 | -- | - |
testcase_29 | -- | - |
testcase_30 | -- | - |
ソースコード
#include<bits/stdc++.h> #include<atcoder/all> #define chmin(x,y) (x) = min((x),(y)) #define chmax(x,y) (x) = max((x),(y)) using namespace std; using namespace atcoder; using ll = long long; const ll mod = 998244353; using mint = modint998244353; using Graph = vector<vector<pair<int,ll>>>; const vector<int> dx = {1,0,-1,0}, dy = {0,1,0,-1}; pair<int,int> song(int a, int b, int n){ for(int x = int(n/a); x >= 0; x--){ int y = n - a*x; if(y % b == 0) return(make_pair(x,y/b)); } return(make_pair(-1,-1)); } vector<int> BFS_bit(vector<vector<int>> g, int s){ int n = g.size(); vector<int> res(n,0); queue<tuple<int,int,int>> q; q.emplace(s,0,(1<<s)); res[s] = 1; while(!q.empty()){ auto[now,stp,visited] = q.front(); q.pop(); for(int nxt = 0; nxt < n; nxt++){ if(g[now][nxt] == 1 && !(visited & (1<<nxt))){ res[nxt] |= (1<<(stp+1)); q.emplace(nxt,stp+1, visited | (1<<nxt)); } } } return res; } int main(){ // input int N,M,K; cin >> N >> M >> K; vector<int> X(K); for(int i = 0; i < K; i++){ cin >> X[i]; --X[i]; } // prep vector<vector<int>> G(N,vector<int>(N,0)); while(M--){ int u,v; cin >> u >> v; --u; --v; G[u][v] = 1; G[v][u] = 1; } vector<vector<int>> D(K,vector<int>(N)); for(int i = 0; i < K; i++) D[i] = BFS_bit(G,X[i]); // solve bool can = 0; for(int x = 0; x < N; x++){ int vst_time = D[0][x]; for(int i = 1; i < K; i++){ vst_time &= D[i][x]; if(!vst_time) continue; } if(vst_time){ can = 1; break; } } // output cout << (can ? "Yes" : "No") << endl; }