从我做起振 我做起振兴 做起振兴中 起振兴中华
比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。要求跳过的路线刚好构成“从我做起振兴中华”这句话。请你帮助小明算一算他一共有多少种可能的跳跃路线呢?答案是一个整数,请通过浏览器直接提交该数字。 注意:不要提交解答过程,或其它辅助说明类的内容。
明显的深搜
#include <iostream>#include <cstring>#include <string>#include <vector>#include <queue>#include <cstdio>#include <set>#include <cmath>#include <algorithm>#include <queue>#define INF 0x3f3f3f3f#define MAXN 100005#define Mod 10001using namespace std;int a[4][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8}};int vis[10][10],ans;int dx[]={1,0,-1,0};int dy[]={0,1,0,-1};void dfs(int x,int y){ if(a[x][y]==8) { ans++; return; } for(int i=0;i<4;++i) { int xm=x+dx[i]; int ym=y+dy[i]; if(!vis[xm][ym]&&a[xm][ym]==a[x][y]+1) { vis[xm][ym]=1; dfs(xm,ym); vis[xm][ym]=0; } }}int main(){ memset(vis,0,sizeof(vis)); ans=0; dfs(0,0); cout<<ans; return 0;}新闻热点
疑难解答
图片精选