往8个方向访问就行了多说一句,我没看到输入是 m,n 这样的,所以最开始我是scanf("%d %d", &m, &n);后来发现牛客的case是可以复制的。。才debug出来这个问题,浪费了10min+。以下是代码 #include using namespace std; int visit(vector>& matrix, int i, int j) { int ret=0; if(i=matrix.size() || j>=matrix[0].size()) return ret; if(matrix[i][j]==1) { ++ ret; matrix[i][j] = -1; } else return ret; for(int x=-1; x<=1; ++x) { for(int y=-1; y<=1; ++y) { if(x!=0 || y!=0) ret += visit(matrix, i+x, j+y); return ret; } int main() { int m, n; int p,q; p=0, q=0; scanf("%d,%d", &m, &n); { vector > matrix(m, vector(n, 0)); for(int i=0; i<m; ++i) { scanf("%d", &matrix[i][0]); for(int j=1; j<n; ++j) { scanf(",%d", &matrix[i][j]); } } for(int i=0; i<m; ++i) { for(int j=0; j<n; ++j) { if(matrix[i][j]==1) { q = max(q, visit(matrix, i, j)); ++p; } } } printf("%d,%d", p, q); } return 0; }
点赞 4

相关推荐

MingoTree:看不出你你的技术栈,想找什么工作,然后课设项目别写上去了,自我评价删了,前后端你想好你要干啥,这种简历投上去秒挂的
点赞 评论 收藏
分享

牛客热帖

更多
牛客网
牛客企业服务