結果
問題 | No.2888 Mamehinata |
ユーザー |
|
提出日時 | 2024-09-13 21:27:01 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 292 ms / 2,000 ms |
コード長 | 875 bytes |
コンパイル時間 | 2,122 ms |
コンパイル使用メモリ | 202,164 KB |
最終ジャッジ日時 | 2025-02-24 07:09:44 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 52 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int N,M; cin>>N>>M; vector<vector<int>> G(N); for(int i=0;i<M;i++){ int u,v; cin>>u>>v; u--;v--; G[u].push_back(v); G[v].push_back(u); } if(G[0].size()==0){ for(int i=0;i<N;i++)cout<<0<<endl; return 0; } vector<int> D(N,1e9); queue<int> Q; Q.push(0); D[0]=0; while(!Q.empty()){ int p=Q.front(); Q.pop(); for(int v:G[p]){ if(D[v]<=D[p]+1)continue; D[v]=D[p]+1; Q.push(v); } } vector<int> AN(N+1,0); for(int i=0;i<N;i++){ if(D[i]<=N)AN[D[i]]++; } for(int i=1;i<=N;i++){ if(i>=2)AN[i]+=AN[i-2]; cout<<AN[i]<<"\n"; } }