标签:des style http io ar color os sp for
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 2126 | Accepted: 1524 |
Description
Input
Output
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
题目翻译:给出一个5*5的矩阵,每一点都有一个数字,让你分别从任意一个数字出发,向上下左右移动,移动6次,所走的路线组成一个字符串,
求:一共可以组成多少个不同的字符串?
结题思路:从每一个点开始搜索,把每走六步的字符串转化成数字放到set里面,至于去重,交给神奇的set吧!
#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
int a[6][6],s[][2]={1,0,-1,0,0,1,0,-1};
set<int>p;
void dfs(int i,int j,int v,int num){
if(v==6){
p.insert(num);
return ;
}
if(i<1||j<1||i>5||j>5)return ;
else{
for(int k=0;k<4;k++)
dfs(i+s[k][0],j+s[k][1],v+1,num*10+a[i][j]);
}
}
int main()
{
int i,j;
for(i=1;i<6;i++)
for(j=1;j<6;j++)
scanf("%d",&a[i][j]);
for(i=1;i<6;i++)
for(j=1;j<6;j++)
dfs(i,j,0,0);
printf("%d\n",p.size());
return 0;
}
标签:des style http io ar color os sp for
原文地址:http://blog.csdn.net/hpuhjl/article/details/41513153