2019第十届蓝桥杯B组决赛题解第五题
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; int dp[7][7]; int ans=0; int dx[]={-1,1,0,0}; int dy[]={0,0,-1,1}; bool vis[7][7]; void output() { for(int i = 1;i<= 6;i++) { for(int j = 1;j<= 6;j++) { cout<<vis[i][j]<<' '; } cout<<endl; } cout<<endl<<endl; } void dfs(int x,int y,int t){ if(t>12){ return ; } if(x==0&&y==0&&vis[x][y]==true){ ans++; output(); return ; } for(int i=0;i<4;i++){ int xx = x+dx[i]; int yy = y+dy[i]; if(xx>=0&&xx<=5&&y>=0&&y<=5&&!vis[xx][yy]){ vis[xx][yy] = true; dfs(xx,yy,t+1); vis[xx][yy] = false; } } } int main(){ memset(dp,0,sizeof(dp)); memset(vis,false,sizeof(vis)); dfs(0,0,0); cout<<ans-2<<endl; return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步