結果
問題 | No.2888 Mamehinata |
ユーザー |
|
提出日時 | 2024-09-14 10:04:36 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 470 ms / 2,000 ms |
コード長 | 1,302 bytes |
コンパイル時間 | 1,188 ms |
コンパイル使用メモリ | 122,984 KB |
最終ジャッジ日時 | 2025-02-24 08:26:38 |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 52 |
ソースコード
#include<iostream>#include<string>#include<queue>#include<vector>#include<cassert>#include<random>#include<set>#include<map>#include<cassert>#include<unordered_map>#include<bitset>#include<numeric>#include<algorithm>using namespace std;typedef long long ll;const int inf=1<<30;const ll INF=1LL<<62;typedef pair<int,int> P;typedef pair<int,P> PP;const ll MOD=998244353;int main(){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);}queue<P> que;vector<int> dist(N,inf);dist[0]=0;que.push(P{0,0});//距離,頂点while(!que.empty()){auto [d,v]=que.front();que.pop();//dist[v]>dfor(int to:G[v]){if(dist[to]==inf){dist[to]=d+1;que.push(P{d+1,to});}}}vector<int> cnt(N+1,0);//0~Nfor(int i=0;i<N;i++){if(dist[i]==inf) continue;cnt[dist[i]]++;}for(int i=2;i<=N;i++){cnt[i]+=cnt[i-2];}if(G[0].size()==0){for(int i=1;i<=N;i++){cnt[i]=0;}}for(int i=1;i<=N;i++){cout<<cnt[i]<<endl;}}