POJ 3050 Hopscotch【DFS带回溯】
题意:
1.5*5的方阵中,随意挑一格,记住这个格子的数字
2.可以上下左右走,走5次,每走一次记录下所走格子的数字
3.经过以上步骤,把所得6个数字连起来,形成一串数字。求共可以形成多少种不同的数字串
思路:
网格大小只有5*5,用穷举法,不会超时。
这里利用了stl中的set容器来防止重复。最终只要输出set的size就是结果。
注意dfs回溯时的编程规范
#include<iostream>
#include<algorithm>
#include<string.h>
#include<cstring>
#include<vector>
#include<set>
#include<stack>
using namespace std; int a[5][5];
vector<int> v;
set<vector<int> >s;
int dir[][2]={0,1,1,0,0,-1,-1,0}; void dfs(int x,int y,int step)
{
if(step==5)
{
s.insert(v);
return;
}
for(int i=0;i<4;i++)
{
int nx=x+dir[i][0];
int ny=y+dir[i][1];
if(nx<0||ny<0||nx>=5||ny>=5)continue;
v.push_back(a[nx][ny]);
dfs(nx,ny,step+1);
v.pop_back();
} } int main()
{
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
cin>>a[i][j];
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
{
v.clear();
v.push_back(a[i][j]);
dfs(i,j,0);
}
cout<<s.size();
return 0;
}
POJ 3050 Hopscotch【DFS带回溯】的更多相关文章
- poj   3050   Hopscotch      DFS+暴力搜索+set容器
		
Hopscotch Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2774 Accepted: 1940 Description ...
 - POJ 3050 Hopscotch  DFS
		
The cows play the child's game of hopscotch in a non-traditional way. Instead of a linear set of num ...
 - POJ 3050  Hopscotch(dfs,stl)
		
用stack保存数字,set判重.dfs一遍就好.(或者编码成int,快排+unique #include<cstdio> #include<iostream> #includ ...
 - POJ -3050 Hopscotch
		
http://poj.org/problem?id=3050 给定一个5×5矩阵,问选6个数的不同排列总数是多少! 二维的搜索,注意要判重,数据量很小,直接用map就好. #include<cs ...
 - POJ 3050 Hopscotch 水~
		
http://poj.org/problem?id=3050 题目大意: 在一个5*5的格子中走,每一个格子有个数值,每次能够往上下左右走一格,问走了5次后得到的6个数的序列一共同拥有多少种?(一開始 ...
 - POJ 3050  Hopscotch  四方向搜索
		
Hopscotch Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6761 Accepted: 4354 Descrip ...
 - POJ 3050 枚举+dfs+set判重
		
思路: 枚举+搜一下+判个重 ==AC //By SiriusRen #include <set> #include <cstdio> using namespace std; ...
 - POJ.3172 Scales (DFS)
		
POJ.3172 Scales (DFS) 题意分析 一开始没看数据范围,上来直接01背包写的.RE后看数据范围吓死了.然后写了个2^1000的DFS,妥妥的T. 后来想到了预处理前缀和的方法.细节以 ...
 - 洛谷1378 油滴扩展 dfs进行回溯搜索
		
题目链接:https://www.luogu.com.cn/problem/P1378 题目中给出矩形的长宽和一些点,可以在每个点放油滴,油滴会扩展,直到触碰到矩形的周边或者其他油滴的边缘,求出剩余面 ...
 
随机推荐
- HDU - 1828 Picture
			
题目链接 题意 多个矩形重叠在一起,求出轮廓线的长度. 分析 把矩形分成横线和竖线来处理.现在分析横线的,竖线同理.矩形的坐标都是整数,且范围不大,故此题不需要离散化.从下往上扫描横线,每遇到一条 ...
 - centos7 memcached+magent+keepalived集群
			
111,222均部署keepalived,magent,memcached keepalived 111为主机,222为备机 其中,111上magent以本地memcache为主,222为备用 222 ...
 - MyBatis编写映射文件实现增删改操作    附说明及代码
			
1.看一下我们接口 package cn.bdqn.mybatis.dao; import org.apache.ibatis.annotations.Select; import cn.bdqn.m ...
 - buildroot构建项目(五)--- u-boot 2017.11 适配开发板修改 3 ---- 系统启动初始化之二
			
一.cpu_init_crit 当执行完时钟初始化后,程序执行: bl cpu_init_crit 跳转到CPU初始化处进行,在其中主要是执行 caches 的关闭 和 MMU的关闭,之后跳转到 ...
 - DNS缓存欺骗攻击
			
1.受影响的无线网络设备 一些D-link.TP-Link.Belkin.Linksys及IPTime等品牌无线路由器存在安全隐患. 2.漏洞描述 攻击者向DNS服务器注入非法网络域名地址,如果服务器 ...
 - Linux - 压缩
			
tar tar zxvpf gz.tar.gz # 解包tar.gz 不指定目录则全解压; -C 放到指定目录 包中的目录: -o 是强制覆盖: tar zcvpf /$path/gz.tar.gz ...
 - Android NDK编程
			
1.首先需要声明native方法: public native String helloWorldNdk(); public native String hello_World_Ndk(); 2.然后 ...
 - 使用xmanager图形化远程连接rhel6
			
使用xmanager图形化远程连接rhel6 xmanager中Xbrowser可以提供图形化桌面远程.和vnc比,可以类似于本地一样用户切换. 操作步骤: linux服务端: 1:查看/etc/in ...
 - 用C++的 new 代替 C 的 malloc 进行内存分配
			
例子: (int*)malloc(100*sizeof(int)) 是先取得int类型的字节宽度,然后乘100计算后得到400,然后调用malloc,并将400传递给函数,分配400字节的内存空间,但 ...
 - 【转】Python之日志处理(logging模块)
			
[转]Python之日志处理(logging模块) 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging ...