啊哈磊_编程从这里起步

标题: 宝岛探险12035是不是出错了? [打印本页]

作者: RAlNBOW    时间: 2016-2-12 17:30
标题: 宝岛探险12035是不是出错了?
宝岛探险12035是不是有错误的 一直在评判 我后来直接输出都不行=-=求解 0人做对  

作者: BLACK^KING    时间: 2016-8-27 14:40

作者: 流水纹痕-_-!    时间: 2016-8-27 15:26

作者: silly-1-2-3    时间: 2016-8-27 15:27
没办法
作者: owen2001    时间: 2016-9-6 17:43

作者: 炽月殿    时间: 2016-9-27 22:59
是的,没有测试数据
作者: code007    时间: 2016-10-1 20:55
也许是你做错了
作者: code001    时间: 2016-10-1 21:55
哈哈哈急急急急急急急急急急急急急急急急急急就
作者: code007    时间: 2016-11-16 19:53
不晓得呢,你看看代码,似乎是没有测试数据
作者: code016    时间: 2016-11-17 21:55
呃,那个,算法书上好像有答案,但不是满分,要改一下。
作者: 黑豆    时间: 2016-11-19 20:22
本帖最后由 黑豆 于 2016-11-19 20:44 编辑

可参考我刚写的代码:[mw_shl_code=applescript,true]#include <stdio.h>
#include <stdlib.h>

#define MAX 101
//Map
int data[MAX][MAX] = {0};
//whether be searched
int flag[MAX][MAX] = {0};
int n = 0,m =0;

int moveX[4] = {0, 0, -1, 1};
int moveY[4] = {-1, 1, 0, 0};

int result = 0;

void DFS(int x, int y) {
    int i;
    int tempx,tempy;

    for (i = 0; i < 4; i++){
        tempx = x + moveX;
        tempy = y + moveY;
        if (flag[tempy][tempx] != 1 && data[tempy][tempx] > 0) {//not mark and it is land
            result++;
            flag[tempy][tempx] = 1;
            DFS(tempx, tempy);
        }
    }

}
int main()
{
    int i,j,x,y;
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt","w",stdout);
    scanf("%d%d%d%d", &n,&m,&x,&y);

    for (i = 1; i <= n; i++)
        for (j = 1; j <= m; j++){
            scanf("%d", &data[j]);
        }
    //(6,8),8应该是上往下算第8行
    DFS(y,x);
    printf("%d", result);

    return 0;
}
[/mw_shl_code]





欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2