MLE求助......
查看原帖
MLE求助......
118739
boatontime楼主2020/8/12 20:10

MLEMLE是什么鬼

#include<bits/stdc++.h>
using namespace std;
const int MAXN=100001;
const int MAXN2=200001;
struct Edge{
	int to,next,dis;
}e[MAXN2];
int head[MAXN],cnt=0;
void add(int u,int v,int w){
	e[++cnt].next=head[u];
	e[cnt].to=v;
	e[cnt].dis=w;
	head[u]=cnt;
}
int n,m,k,p;
int dis_n[MAXN];
int dfs1(int u,int fa){
	for(int i=head[u];i;i=e[i].next){
		int v=e[i].to,w=e[i].dis;
		if(v==fa)continue;
		dfs1(v,u);
		dis_n[u]=min(dis_n[u],dis_n[v]+w);
	}
}
int dfs2(int u,int diss){
	int ans=0;
	if(u==n)return 1;
	for(int i=head[u];i;i=e[i].next){
		int v=e[i].to,w=e[i].dis;
		if(diss-w>=0){
			ans+=dfs2(v,diss-w);
			ans=ans%p;
		}
	}
	return ans%p;
}
int main(){
	int T;
	cin>>T;
	while(T--){
		memset(dis_n,0x3f,sizeof(dis_n));
		memset(e,0,sizeof(e));
		memset(head,0,sizeof(head));
		cnt=n=m=k=p=0;
		cin>>n>>m>>k>>p;
		for(int i=1;i<=m;i++){
			int u,v,w;
			cin>>u>>v>>w;
			add(u,v,w);
		}
		dis_n[n]=0;
		dfs1(1,0);
		int diss=dis_n[1]+k;
		cout<<dfs2(1,diss)%p<<endl;
	}
}
2020/8/12 20:10
加载中...