题目 题意: 给定有向图,求从1到n的最短路。附加了第二边权,钱。要求求得的最短路为使用钱数不超过limit的最短路. n = 100,m = 10000 思路: n很小,直接dfs搜索满足条件的路径。 或者用Dijkstra,但是与传统的用法不同。只要满足使用钱数>all>>n>>m; while(m--) { int x,y,z,z2; cin>>x>>y>>z>>z2; add(x,y,z,z2); } dfs(1,0,0); coutT; // read(T); while(T--) { solve(); } return 0; }
#include
#include
#include
#include
#include
#include
#include
#include
// #include
#include
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
#define fir(i,a,b) for(int i=a;iz2;
add(x,y,z,z2);
}
Dij(1);
if(ans == 1e9) ans = -1;
coutT;
// read(T);
while(T--)
{
solve();
}
return 0;
}