結果

問題 No.2888 Mamehinata
ユーザー HIcoder
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#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]>d
for(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~N
for(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;
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0