60分tle 求大佬救
查看原帖
60分tle 求大佬救
671001
son_of_bithch楼主2023/8/3 19:15
#include <bits/stdc++.h> 
using namespace std;
const int maxn=1e6+1;
const int maxm=2e6+1;
long long cnt[maxn<<1];
int head[maxm];int n,m;
const int Inf=9999999;
struct Edge{
	int u,v,w,next;
}e[maxm*2];
int len=0;
void ins(int u,int v,int w){
	e[++len].u=u;
	e[len].v=v;
	e[len].w=w;
	e[len].next=head[u];
	head[u]=len;
};
struct Node{
	int num,dis;
	Node(int x,int y){
		num=x;
		dis=y;
	}
};
bool operator<(const Node &a,const Node &b){
		return a.dis>b.dis;
}
int d[maxm];
int a[11451][11451];
void dj(int u){
	priority_queue <Node> q;
	q.push(Node(u,0));
	cnt[1]=1;
	memset(d,Inf,sizeof(d));
	d[u]=0;
	while(!q.empty()){
		int u=q.top().num;
		q.pop();
		for(int i=head[u];i;i=e[i].next){
			int v=e[i].v;
			if(d[v]>=d[u]+e[i].w){
				d[v]=d[u]+e[i].w;
				cnt[v]++;
				q.push(Node(v,d[v]));
			}
		}
	}
}
void read(){
	scanf("%d %d",&n,&m);
	int u,v;
	for(int i=1;i<=m;i++){
		scanf("%d%d",&u,&v);
		ins(u,v,1);
		ins(v,u,1);
	}
}
int main(){
	read();
	dj(1);
	for(int i=0;i<=maxn;i++){
		if(cnt[i]==0)	continue;
		if(cnt[i]==0&&d[i]<Inf)	cout<<"0";
		cout<<cnt[i]%1000003<<endl;
	}
	return 0;
}
2023/8/3 19:15
加载中...