蓝桥杯练习系统 PREV-4 剪格子
来源:互联网 发布:怎样学好js 编辑:程序博客网 时间:2024/05/01 14:48
搜索题.
几处剪枝的地方:
1.当前和s大于总的和减去s,没有必要继续搜下去.
2.当前使用的格子大于等于最优解,没有必要继续搜下去.
下面的程序可能会剪成3部分,可是还是过了,不知为什么.
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int MAX = 11;bool vis[MAX][MAX];int n, m, ans, val[MAX][MAX], sum;int dir_i[] = {-1, 1, 0, 0};int dir_j[] = {0, 0, -1, 1};void dfs(int i, int j, int s, int count){if(sum - s < s)return;if(count >= ans)return;if(sum - s == s){ans = min(ans, count);return;}for(int k = 0; k < 4; ++k){int ni = i + dir_i[k], nj = j + dir_j[k];if(ni >= 0 && ni < n && nj >= 0 && nj < m && !vis[ni][nj]){vis[i][j] = true;dfs(ni, nj, s + val[ni][nj], count + 1);vis[i][j] = false;}}}int main(int argc, char const *argv[]){ans = 101, sum = 0;cin >> m >> n;for(int i = 0; i < n; ++i){for(int j = 0; j < m; ++j){cin >> val[i][j];sum += val[i][j];}}vis[0][0] = 1;dfs(0, 0, val[0][0], 1);if(ans == 101){cout << 0 << endl;}else{cout << ans << endl;}return 0;}
0 0
- 蓝桥杯练习系统 PREV-4 剪格子
- 【蓝桥杯】 PREV-4 剪格子
- PREV-4 剪格子
- 蓝桥杯PREV-4 剪格子 (搜索)
- 历届试题 PREV-15 格子刷油漆
- 蓝桥杯练习-操作格子【树状数组】
- 蓝桥杯 剪格子
- 【蓝桥杯】剪格子
- DFS 蓝桥杯 剪格子
- 蓝桥杯 剪格子(DFS)
- 蓝桥杯 剪格子
- 剪格子 - 蓝桥杯
- 蓝桥杯 剪格子
- 蓝桥杯:标题:剪格子
- 蓝桥杯 剪格子
- 蓝桥杯 剪格子
- 剪格子 蓝桥杯
- 蓝桥杯 剪格子 DFS
- Codeforces round #236Div.2--A;B
- python多进程通信例子
- 图形化的电力线路处理软件系统介绍
- 【Unix 网络编程】TCP 客户/服务器简单 Socket 程序
- 我的新设想,你也可以添一笔哦^^
- 蓝桥杯练习系统 PREV-4 剪格子
- 推送服务:打破手游用户“沉默”局面
- svn服务器配置教程
- 在linux目录下搜索文本内的字符串
- excel转换成pdm
- 基于web的svn简易管理系统
- C#修改XML保存时报 无权限!
- 关于指针的总结
- 一个循环里fork出的子进程个数