栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 2935 Here We Go ...

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 2935 Here We Go ...

#include <stdio.h>#define INF 999999999#define DIS 2520const int dir[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};int mp[21][21][4];char mark[21][21];int mind[21][21];int main(){    int i, j, k, x, y, m, n;    char buf[4];    while(scanf("%d%d", &n, &m) != EOF && (m && n)) {        for (i = 0; i <= n; i++) for (j = 0; j <= m; j++) {     mark[i][j] = 0;     mind[i][j] = INF;     for (k = 0; k < 4; k++)         mp[i][j][k] = INF; }        for (i = 0; i <= n; i++) { for (j = 0; j < m; j++) {     scanf("%d%s", &k, buf);     if(k == 0) continue;     k = DIS / k;     switch(*buf) {     case '>': mp[i][j][2] = k; break;     case '<': mp[i][j + 1][3] = k; break;     case '*': mp[i][j][2] = mp[i][j + 1][3] = k; break;     } } if(i == n) break; for (j = 0; j <= m; j++) {     scanf("%d%s", &k, buf);     if(k == 0) continue;     k = DIS / k;     switch(*buf) {     case 'v': mp[i][j][0] = k; break;     case '^': mp[i + 1][j][1] = k; break;     case '*': mp[i][j][0] = mp[i + 1][j][1] = k; break;     } }        }        mind[0][0] = 0;        k = m * n;        while(!mark[n][m]) { x = y = -1; for (i = 0; i <= n; i++)     for (j = 0; j <= m; j++)         if(!mark[i][j] && (x == -1 || mind[i][j] < mind[x][y])) {x = i; y = j;} mark[i = x][j = y] = 1; for (k = 0; k < 4; k++) {     if(mp[i][j][k] == INF) continue;     x = i + dir[k][0];     y = j + dir[k][1];     if(mind[x][y] > mind[i][j] + mp[i][j][k])         mind[x][y] = mind[i][j] + mp[i][j][k]; }        }        if(mind[n][m] == INF) printf("Holidayn");        else printf("%d blipsn", mind[n][m]);    }}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/375002.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号