我用DEV-C和VS测试答案都是对的然而WR

回复帖子 返回题目

@ HXBer 2017-12-07 20:51

为什么我用DEV-C和VS测试了 下载下来的第一个和第五个点的答案都是对的

而洛谷read到的答案都是错的呢(用洛谷IDE测试也是错的)

求解QwQ。

// cell.cpp: 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <algorithm>
#include <string.h>
#include <stdio.h>
using namespace std;
const int MAXN=1005;
int form[MAXN][MAXN];
int n, m;
int ans;
int mx[4]={ 0,0,-1,1 };
int my[4]={ 1,-1,0,0 };//下 上 左 右 
void bfs(int i, int j)
{ 
    form[i][j] = 0;
    for (int x = 0; x < 4; x++)
    {    
        if (i + my[x] < 0 || i + my[x] >= n || j + mx[x] < 0 || j + mx[x] >= m)continue;
        if (form[i + my[x]][j + mx[x]]!=0)
            bfs(i + my[x], j + mx[x]);
    }
}
int main()
{
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
    {
        getchar();
        for (int j = 0; j < m; j++)
        {
            char ch = getchar();
            form[i][j] = ch - '0';
        }
    }
    for(int i=0;i<n;i++)
        for (int j = 0; j < m; j++)
        {
            if (form[i][j] != 0)
            {
                bfs(i, j); 
                ans++;
            }
        }
    cout << ans;
    return 0;
}
@ kaiming 2017-12-08 11:53 回复

请不要使用getchar(),在linux环境下很容易出问题@HXBer