Luogu P2384 最短路

来源:互联网 发布:魔兽争霸3全屏软件 编辑:程序博客网 时间:2024/05/20 11:26

题目传送门:https://www.luogu.org/problem/show?pid=2384


主要思路:这道题因为数据水的原因,可以直接DFS,也不用取%(逃)
我们只需要将路径存储好,然后进行DFS就可以了.
要注意0*任何数都等于0,所以在DFS的时候,累乘器的初始值要赋为1.


附上代码:

#include <iostream>#define INF 999999using namespace std;bool book[1001];int dis[1001][1001];int n,m,x,y,z,ans=INF;void init(){int i,j;cin>>n>>m;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(i==j){dis[i][j]=0;}else{dis[i][j]=INF;}}}for(i=1;i<=m;i++){cin>>x>>y>>z;dis[x][y]=z;}book[1]=1;return;}void dfs(int cur,int sum){if(cur==n){ans=min(ans,sum);return;}int i;for(i=1;i<=n;i++){if(book[i]==false && dis[cur][i]!=INF){book[i]=true;dfs(i,sum*dis[cur][i]);book[i]=false;}}return;}void out(){cout<<ans;return;}int main(){init();dfs(1,1);out();}