[backend]将testdata/下的测例替换为了赛方测试用例,更新了测试脚本
This commit is contained in:
82
testdata/functional/70_dijkstra.sy
vendored
Normal file
82
testdata/functional/70_dijkstra.sy
vendored
Normal file
@ -0,0 +1,82 @@
|
||||
const int INF = 65535;
|
||||
int e[16][16];
|
||||
int book[16];
|
||||
int dis[16];
|
||||
int n, m;
|
||||
int v1, v2, w;
|
||||
|
||||
void Dijkstra()
|
||||
{
|
||||
int i, j;
|
||||
|
||||
i = 1;
|
||||
while (i <= n) {
|
||||
dis[i] = e[1][i];
|
||||
book[i] = 0;
|
||||
i = i + 1;
|
||||
}
|
||||
book[1] = 1;
|
||||
|
||||
i = 1;
|
||||
while (i <= n - 1) {
|
||||
int min_num = INF;
|
||||
int min_index = 0;
|
||||
int k = 1;
|
||||
while (k <= n) {
|
||||
if (min_num > dis[k] && book[k] == 0) {
|
||||
min_num = dis[k];
|
||||
min_index = k;
|
||||
}
|
||||
k = k + 1;
|
||||
}
|
||||
book[min_index] = 1;
|
||||
int j = 1;
|
||||
while (j <= n) {
|
||||
if (e[min_index][j] < INF) {
|
||||
if (dis[j] > dis[min_index] + e[min_index][j]) {
|
||||
dis[j] = dis[min_index] + e[min_index][j];
|
||||
}
|
||||
}
|
||||
j = j + 1;
|
||||
}
|
||||
i = i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
int i;
|
||||
n = getint();
|
||||
m = getint();
|
||||
|
||||
i = 1;
|
||||
while (i <= n) {
|
||||
int j = 1;
|
||||
while (j <= n) {
|
||||
if (i == j)
|
||||
e[i][j] = 0;
|
||||
else
|
||||
e[i][j] = INF;
|
||||
j = j + 1;
|
||||
}
|
||||
i = i + 1;
|
||||
}
|
||||
|
||||
i = 1;
|
||||
while (i <= m) {
|
||||
int u = getint(), v = getint();
|
||||
e[u][v] = getint();
|
||||
i = i + 1;
|
||||
}
|
||||
|
||||
Dijkstra();
|
||||
|
||||
i = 1;
|
||||
while (i <= n) {
|
||||
putint(dis[i]);
|
||||
putch(32);
|
||||
i = i + 1;
|
||||
}
|
||||
putch(10);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user