参考代码:
#include<bits/stdc++.h> using namespace std; int m, n; int result = INT_MAX; int a[11][11]; int flag[11][11]; int dir[4][2] = { {-1,0},{0,-1},{1,0},{0,1} };//左上右下; bool in(int x, int y) { return (x >= 0 && x < n&& y >= 0 && y < m); } void dfs(int x, int y, int sum) { sum += a[x][y]; flag[x][y] = 1; int o_sum = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (flag[i][j] ==0) o_sum+=a[i][j]; } } if (o_sum == sum) { int k = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (flag[i][j] == 1) k++; } } if (k < result) result = k; return; } for (int i = 0; i < 4; i++) { int dx = x + dir[i][0]; int dy = y + dir[i][1]; if (in(dx, dy) && flag[dx][dy] == 0) dfs(dx, dy, sum); } flag[x][y] = 0; } int main() { cin >> m >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; } } dfs(0, 0, 0); cout << result; }
0.0分
3 人评分
分糖果 (C++代码)浏览:855 |
C语言训练-最大数问题 (C语言代码).........关于-1浏览:742 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:552 |
【偶数求和】 (C语言代码)浏览:639 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:1233 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:780 |
简单的for循环浏览:1408 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:1090 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:879 |
简单的a+b (C语言代码)浏览:573 |