记录下第一次玩深搜的两题(DFS/回溯)
来源:互联网 发布:大学o2o源码 编辑:程序博客网 时间:2024/05/16 16:34
2.4 小z的房子
#include<iostream> #include<stdio.h> #include<string> using namespace std; int arr[200][200]; int move[4][2] = { {-1,0} , {1,0} , {0,-1} , {0,1} }; void DFS(int x,int y) { arr[x][y] = 0;//搜索到的位置清零 int nextX,nextY; for(int t=0;t<4;t++) //搜索上下左右 { nextX = x + move[t][0]; nextY = y + move[t][1]; if(arr[nextX][nextY] == 1) DFS(nextX,nextY); } } int main() { int n,m; cin >> n >> m; for(int i = 1; i <= n ;i++) //从[1][1]开始存 为了避免在上下左右深搜判断时数组越界(这样外圈都是0) { getchar(); for(int j = 1;j <= m;j++) arr[i][j] = (getchar() == '1'); //当读入字符为1时给int数组赋值1 } int num = 0; for(int k = 1; k <= n; k++) for(int p = 1; p <= m; p++) { if(arr[k][p] == 1) { num++; DFS(k,p); } } cout << num <<endl; return 0; }
2.5小z的三角形
#include<iostream> #include<stdio.h> #include<string> using namespace std; int arr[15][15];//+为0 -为1 int sum;//-号个数 int num = 0;//满足题意的图形数 int n; int i,j; void prin(int n) { for(i = 1; i < n; i++) //由第一行构造整个三角形 { for(j = 0; j < n-i;j++) { arr[i][j] = arr[i-1][j]+arr[i-1][j+1]; arr[i][j]%=2; } } sum = 0; for(i = 0; i < n; i++) for(j = 0; j < n-i;j++) if(arr[i][j]) sum++; //sum值即-号个数 if(3*sum == n*(n+1)) //若-号占全部的2/3 输出三角形 { num++; for(i = 0; i < n; i++) { for(j = 0; j < n-i;j++) { if(arr[i][j]) cout << '-'<<" "; else cout << '+'<<" "; } cout <<endl; } } } void search(int step) //深搜枚举第一行的01情况{ if(step >= n) prin(n); else { arr[0][step] = 0; search(step+1); arr[0][step] = 1; search(step+1); } } int main() { cin >> n; search(0); cout << num; return 0; }
0 0
- 记录下第一次玩深搜的两题(DFS/回溯)
- 记录下第一次用lua
- GitHub Windows 下第一次折腾记录
- [版本]GitHub Windows 下第一次折腾记录
- 记录下第一次开始搞博客
- 记录下第一天的心情
- 记录下第一次sql server DBA 面试详情
- dfs回溯的注意事项
- 1691(dfs + 回溯)
- POJ1154(DFS回溯)
- 回溯法(DFS)
- HDU1015(dfs回溯)
- 回溯和DFS的区别
- 回溯法,DFS的应用
- 学习ThinkPHP3.2.2(一):记录一下第一个例子的运行过程
- 记录下第一篇博客
- hdu4499 Cannon (DFS+回溯)
- 140 - Bandwidth(DFS+回溯)
- BZOJ2599: [IOI2011]Race
- 18. 4Sum
- chrome扩展及应用开发——
- 偶遇串行化 Serializer
- MySQL简单入门——安装配置启动登录
- 记录下第一次玩深搜的两题(DFS/回溯)
- 01百思不得其姐基本配置
- 各大Oj平台介绍
- Android模拟器-Genymotion的下载和添加Android虚拟系统
- C# 使用MySqlBulkLoader 批量导入数据到Mysql
- Android Studio 光标切换 从黑框切换成普通的光标 (竖条的光标)
- PHP 可以获取客户端哪些访问信息!?
- 输出最长字符串
- sakai的工程