1 条题解
-
1
#include<bits/stdc++.h> using namespace std; int cnt; string ans; char mp[11][11]; int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; bool in(int x,int y) { return 1<=x&&x<=5&&1<=y&&y<=5; } set<string> s; void dfs(int x,int y,int dep,string an) { an+=mp[x][y]; if(dep==6) { if(!s.count(an)) { s.insert(an); cnt++; } return; } for(int i=0;i<4;i++) { int nx=x+dir[i][0],ny=y+dir[i][1]; if(in(nx,ny)) dfs(nx,ny,dep+1,an); } return; } int main() { for(int i=1;i<=5;i++) for(int j=1;j<=5;j++) cin>>mp[i][j]; for(int i=1;i<=5;i++) for(int j=1;j<=5;j++) dfs(i,j,1,""); cout<<cnt<<endl; return 0; }
- 1
信息
- ID
- 311
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 10
- 标签
- 递交数
- 3
- 已通过
- 3
- 上传者