rt
我在使用 Code::Blocks 写题的时候,出现了
sh: 1: Syntax error: word unexpected (expecting ")")
这个报错,然而在其他 IDE 上(Geany && 洛谷ide)上就可以运行,bdfs无果
题意大致是求从 1 到 n 的最短路,代码如下:
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
const int N = 105,INF = 0x3f3f3f3f;
struct edge{
int to,w;
};
vector <edge> g[N];
int dis[N],flag[N],n,m;
void dijkstra(int root){
memset(dis,0x3f,sizeof(dis));
memset(flag,0,sizeof(flag));
dis[root] = 0;
while(1){
int x = 0;
for(int i = 1;i <= n;i ++){
if(!flag[i] && dis[i] < dis[x]) x = i;
}
if(x == 0) break;
flag[x] = 1;
int len = g[x].size();
for(int k = 0;k < len;k ++){
int to = g[x][k].to;
int w = g[x][k].w;
if(dis[to] > dis[x] + w){
dis[to] = dis[x] + w;
}
}
}
return;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
while(cin >> n >> m){
if(n == 0 && m == 0) break;
for(int i = 1;i <= m;i ++){
int u,v,w;
cin >> u >> v >> w;
g[u].push_back({v,w});
g[v].push_back({u,w});
}
dijkstra(1);
cout << dis[n] << '\n';
}
return 0;
}