比赛 |
EYOI暨SBOI暑假快乐赛4th |
评测结果 |
AAATWWWWTW |
题目名称 |
往广大的天空 |
最终得分 |
30 |
用户昵称 |
该账号已注销 |
运行时间 |
2.323 s |
代码语言 |
C++ |
内存使用 |
2.88 MiB |
提交时间 |
2022-06-28 11:32:00 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
struct abc{
int f,t,a,n;
}mp[1010];
int n,m,k=0,t[1010]={0},cnt=0;
int hd[1010];
bool v[1010]={0};
int add(int x,int y)
{
mp[++cnt].f=x;
mp[cnt].t=y;
mp[cnt].n=hd[x];
hd[x]=cnt;
}
int dfs(int x)
{
t[x]++;
for(int i=hd[x];i;i=mp[i].n)
{
int ver=mp[i].t;
if(mp[i].a==1&&v[ver]==0)
{
v[ver]=1;
dfs(ver);
}
}
return 0;
}
int main(){
freopen("stasis.in","r",stdin);
freopen("stasis.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
add(x,y);
add(y,x);
}
for(int i=0;i<(1<<m);i++)
{
int p=0;memset(v,0,sizeof(v));
for(int j=0;j<m;j++)
{
if((i>>j)&1==1){
mp[j*2+1].a=1;
mp[j*2+2].a=1;
}
else{
mp[j*2+1].a=0;
mp[j*2+2].a=0;
}
}
v[1]=1;
dfs(1);
}
for(int i=2;i<=n;i++)
{
cout<<t[i]<<' ';
}
cout<<endl;
return 0;
}