DFS暴力求某集合上的某种的组合情况
2016-03-21 16:45
399 查看
看到有很多用DFS,八皇后,N骑士,还有什么给几个碎片拼正方形的,其实都是在一定数上的组合情况的枚举,好多都是本质上都是一样的,但是经常写的时候还是会卡一下,当个模板吧
比如这个从12个格子里不重不漏地找5个块的组合情况,数量上应该是792
比如这个从12个格子里不重不漏地找5个块的组合情况,数量上应该是792
#include <cstdio> #include <iostream> #include <cstring> #include <cmath> using namespace std; //三行四列一共12个元素 const int r = 3, c = 4; int zuhe; bool mapp[10][10]; //从12个中选5个的组合方式 //paint当前状态是到(x, y)这个点,不包括(x, y)已经完成了dep个 void paint(int x, int y, int dep) { if (dep == 5) { zuhe++; return; } if (x == r) return; for (int i = y; i <= c; i++) { if (i < c) { mapp[x][i] = true; paint(x, i + 1, dep + 1); mapp[x][i] = false; } else { paint(x + 1, 0, dep); } } } int main() { memset(mapp, false, sizeof(mapp)); zuhe = 0; paint(0, 0, 0); //从最左上角开始 cout << zuhe << endl; return 0; }
相关文章推荐
- 进击的KFC:iOS WebView 如何通过js获取网页中所有图片并加入点击事件,实现浏览图片的功能
- set接口
- Attempt to mutate immutable object with appendString
- docker网络-如何让外部网络访问容器资源
- mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间
- ubuntu(14.04) 网路管理
- 创建XML对象的浏览器兼容问题
- 使用HTML写一个简单的跳转登录页面
- Java单元测试Junit(六)使用Cobertura生成测试覆盖率报告
- UVA 1329——Corporative Network
- JavaScript设计模式 Item9 --适配器模式Adapter111
- PKCS标准
- DLL入门浅析(5)——使用DLL在进程间共享数据
- DLL入门浅析(4)——从DLL中导出类
- CSS3 选择器 属性选择器介绍
- 由于后面的视频没有将单独的笔记发布,所以自己记录
- 解决android studiogradle 错误 找不到程序包 符号
- 别人的面试
- 自学鸟哥linux服务-邮箱服务postfix+dovecot
- ios数据库升级,自动添加字段