写一段C语言代码来判断当前城市i是否被访问过,且当前花费fare是否已经被记录过。如果没有被记录过,或者被记录过但是当前的最小花费比之前更小,就将当前最小花费记录到been[i][fare]中。其中,been是一个二维map,用于记录每个城市的最小花费,d是一个二维数组,用于记录每个城市之间的距离。
时间: 2024-03-09 16:46:39 浏览: 50
判断点是否在多边形内的C语言代码(2维及3维)
以下是一段示例代码:
```c
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CITY 100
#define MAX_FARE 10000
int d[MAX_CITY][MAX_CITY]; // 存储每个城市之间的距离
int been[MAX_CITY][MAX_FARE]; // 存储每个城市的最小花费
bool is_visited(int i, int fare) {
if (!been[i][fare] || been[i][fare] > d[i][j]) {
been[i][fare] = d[i][j];
return true;
}
return false;
}
```
在这段代码中,is_visited函数用于判断当前城市i是否被访问过,且当前花费fare是否已经被记录过。如果没有被记录过,或者被记录过但是当前的最小花费比之前更小,就将当前最小花费记录到been[i][fare]中。函数返回值为true表示当前城市被访问过,false表示未被访问过。
阅读全文