查看原帖
993175
a_gold_TomAndJerry楼主2024/10/3 17:48

旅游巴士可以用爆搜解吗?搜了一遍DFS全体MLE,可以剪枝吗?

#include <bits/stdc++.h>
using namespace std;
const int maxn=1e4;
struct node{
	int time,l=0;
	int to[maxn*2+10];
}a[maxn+10];
int n,m,k,minn=114514;
int DFS(int now,int t){
	if(now==n) return (t/k+1)*k;
	int x;
	for(int i=1;i<=a[now].l;i++){
		x=t;
		if(a[a[now].to[i]].time>t) x=a[a[now].to[i]].time;
		minn=min(minn,DFS(a[now].to[i],x+1));
	}
	return 114514;
}
int main(){ 
	scanf("%d%d%d",&n,&m,&k);
	for(int i=1;i<=m;i++){
		int x,y,z;
		scanf("%d%d%d",&x,&y,&z);
		a[x].to[++a[x].l]=y;
		a[x].time=z;
	}
	DFS(1,0);
	cout<<minn;
	return 0;
}
2024/10/3 17:48
加载中...