PAT1003 Emergency (25 分)

1.用fill函数将一个区间的元素都赋同一个值,在里:

    fill(d, d+MAX, INF);//一维数组d
    fill(G[0], G[0]+MAX*MAX, INF);//二维数组G

memset函数在里,只能用于置0或者-1。

2.细小的错误耗费了大量的时间,写的时候就该认真。

#include 
#include 
#include 
using namespace std;
#define MAX 505
#define INF 0x3fffffff

int G[MAX][MAX];
int visited[MAX] = {false};
int d[MAX];
int wCollected[MAX];
int weight[MAX];
int N, M, C1, C2;
int num[MAX];


void Dijkstra(int s){
//初始化起点的参数:距起点距离、收集到的资源数、路径条数。需要初始化的变量都该初始化,别漏
    d[s] = 0;
    wCollected[s] = weight[s];
    num[s] = 1;//1不该漏
//    visited[s] = true;//2不该在这里置为已访问,否则结果就是0 0
    
    for (int i=0; i

 

你可能感兴趣的:(PAT)