POJ 3050:Hopscotch
2015-07-31 14:48
253 查看
Hopscotch
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.
这个题题意是给一个5*5的矩阵,你可以从任意一个起点走5步,每一步可以上下左右那么走,记录你走过的路径,即你脚下的位置的value,输出不同的路径个数。
自己想输出不同的值,用的vector。。。结果一看其他人用的set比我的方便好多,而且直接insert啊,set自动去重啊。
代码:
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 2506 | Accepted: 1784 |
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.
这个题题意是给一个5*5的矩阵,你可以从任意一个起点走5步,每一步可以上下左右那么走,记录你走过的路径,即你脚下的位置的value,输出不同的路径个数。
自己想输出不同的值,用的vector。。。结果一看其他人用的set比我的方便好多,而且直接insert啊,set自动去重啊。
代码:
#include <iostream> #include <algorithm> #include <cmath> #include <vector> #include <string> #include <cstring> #include <queue> #pragma warning(disable:4996) using namespace std; int value[7][7]; vector<int>road; void dfs(int i,int j,int step,int test) { if(step==6) { test = test*10+value[i][j]; road.push_back(test); return; } test = test*10+value[i][j]; if(i>1) { dfs(i-1,j,step+1,test); } if(j>1) { dfs(i,j-1,step+1,test); } if(i<5) { dfs(i+1,j,step+1,test); } if(j<5) { dfs(i,j+1,step+1,test); } } int main() { int i,j; for(i=1;i<=5;i++) { for(j=1;j<=5;j++) { cin>>value[i][j]; } } for(i=1;i<=5;i++) { for(j=1;j<=5;j++) { dfs(i,j,1,0); } } sort(road.begin(), road.end()); vector<int>::iterator iter =unique(road.begin(),road.end()); road.erase(iter,road.end()); cout<<road.size()<<endl; return 0; }
相关文章推荐
- 架构设计和概要设计
- Oprofile:CPU性能分析工具指南
- 架构设计与概要设计的区别
- heartbeat实现web高可用
- context:property-placeholder
- fread,fwrite,fopen,fclose ,fseek用法
- 使用vs中的工具进行架构比较
- weblogic部署应用,访问控制台就报内存溢出
- Centos安装pycurl
- 红帽企业虚拟化管理平台RHEVM安装指南(精简版)
- Linux基金会新近成立的云原生计算基金会隐藏着什么名堂?
- Linux基金会新近成立的云原生计算基金会隐藏着什么名堂?
- 在centos7 ubuntu15.04 上通过bosh-lite 搭建单机环境cloudfoundry
- linux shell的使用
- Linux设备驱动第七篇:高级字符驱动操作之阻塞IO
- Linux设备驱动第七篇:高级字符驱动操作之阻塞IO
- CentOS7安装性能监控系统
- 多校第四场 1010 hdu 5336 XYZ and Drops(bfs+模拟)
- 将linux英文系统变成中文系统
- linux下mysql常用的命令