代码求调
查看原帖
代码求调
1050431
DevilsFlame楼主2024/8/1 10:08

bfs应该也可以吧……

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5,mod = 100003;
queue <int> f,t;
vector <int> q[N];
int n,ggb,a,b,ans[N],m[N];
map <int,bool> d[N];
int main()
{
	cin >> n >> ggb;
	for(int i = 1;i <= ggb;i ++)
	{
		cin >> a >> b;
		if(a == b || d[a][b]) continue;
		d[a][b] = d[b][a] = 1;
		q[a].push_back(b);
		q[b].push_back(a);
	}
	m[0] = 0;
	ans[1] = 1;
	f.push(1);
	t.push(0);
//	cout << endl;
	while(!f.empty())
	{
		int v = f.front();
		int ti = t.front();
//		cout << v << ' ' << ti << endl;
		t.pop();
		f.pop();
		ti ++;
		for(int i = 0;i < q[v].size();i ++)
		{
			int u = q[v][i];
			if(!m[u] && u != 1 || m[u] > ti)
			{
				m[u] = ti;
				f.push(u);
				t.push(ti);
			}
			if(m[u] == ti) ans[u] ++,ans[u] %= mod;
		}
	}
	for(int i = 1;i <= n;i ++) printf("%d\n",ans[i]);
	return 0;
}
2024/8/1 10:08
加载中...