POJ 3050 Hopscotch
2016-04-21 16:04
513 查看
Description
The cows play the child's game of hopscotch in a non-traditional way. Instead of a linear set of numbered boxes into which to hop, the cows create a 5x5 rectilinear grid of digits parallel to the x and y axes.
They then adroitly hop onto any digit in the grid and hop forward, backward, right, or left (never diagonally) to another digit in the grid. They hop again (same rules) to a digit (potentially a digit already visited).
With a total of five intra-grid hops, their hops create a six-digit integer (which might have leading zeroes like 000201).
Determine the count of the number of distinct integers that can be created in this manner.
Input
* Lines 1..5: The grid, five integers per line
Output
* Line 1: The number of distinct integers that can be constructed
Sample Input
Sample Output
Hint
OUTPUT DETAILS:
111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, and 212121 can be constructed. No other values are possible.
题目大意:给一个5X5矩阵,问在任意一点出发,向四周走5步有多少种不同的走法;
题解:用set存储序列,每一个点进行dfs,得到的序列转化为一个数字,重复的序列就不会被计入,然后将容器大小输出即可;
AC代码:
The cows play the child's game of hopscotch in a non-traditional way. Instead of a linear set of numbered boxes into which to hop, the cows create a 5x5 rectilinear grid of digits parallel to the x and y axes.
They then adroitly hop onto any digit in the grid and hop forward, backward, right, or left (never diagonally) to another digit in the grid. They hop again (same rules) to a digit (potentially a digit already visited).
With a total of five intra-grid hops, their hops create a six-digit integer (which might have leading zeroes like 000201).
Determine the count of the number of distinct integers that can be created in this manner.
Input
* Lines 1..5: The grid, five integers per line
Output
* Line 1: The number of distinct integers that can be constructed
Sample Input
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1
Sample Output
15
Hint
OUTPUT DETAILS:
111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, and 212121 can be constructed. No other values are possible.
题目大意:给一个5X5矩阵,问在任意一点出发,向四周走5步有多少种不同的走法;
题解:用set存储序列,每一个点进行dfs,得到的序列转化为一个数字,重复的序列就不会被计入,然后将容器大小输出即可;
AC代码:
#include <iostream> #include <cmath> #include <cstring> #include <algorithm> #include <set> using namespace std ; int dp[6][6] ,vis[6][6],ans; int dir[4][2] = {{-1,0},{1,0},{0,-1},{0,1}}; set<int>ma; void dfs(int x ,int y , int t ,int sum) { if(t==5) { ma.insert(sum); return; } for(int i = 0 ; i < 4 ; i++) { int dx = x + dir[i][0]; int dy = y + dir[i][1]; if(dx>=0&&dx<5&&dy>=0&&dy<5) { dfs(dx,dy,t+1,dp[dx][dy]+sum*10);//*把当前的序列变为一个整数; } } } int main() { for(int i = 0 ; i<5;i++) { for(int j = 0 ;j<5;j++) { cin>>dp[i][j]; } } for(int i = 0 ; i<5;i++) { for(int j = 0 ;j<5;j++) { dfs(i,j,0,dp[i][j]); } } cout<<ma.size()<<endl; }
相关文章推荐
- Linux内核OOM机制分析
- 利用fsockopen可实现异步成功访问
- Shell脚本的几种字符串子串获取
- Linux iptables防火墙实用模板
- 使用GoAccess分析Nginx日志以及sed/awk手动分析实践
- 基于 OSG OpenSceneGraph HTC Vive 的实现
- Hibernate 中的attachDirty,attachClean,merge,findByProperty和findByExample
- select option 右对齐
- java爬虫webmagic 案例爬取动态(ajax+js) 网站京东售价格项目pom.xml
- OpenCV源码中的缩写词全称积累!
- linux设备树dts移植详解
- TomCat的工作原理和端口理解
- 在Naoqi中使用OpenCV
- 编写Linux脚本
- 一些常用的linux命令
- OpenCV中CV_IS_MAT_CONT(src->type & dst->type) 的含义!
- linux内核调试工具Kprobes
- 在CentOS系统上从零开始搭建WordPress博客的全流程记录
- Nginx 下配置SSL证书的方法
- nginx(Window下安装 & 配置文件参数说明 & 实例)