博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小W走迷宫
阅读量:4071 次
发布时间:2019-05-25

本文共 1531 字,大约阅读时间需要 5 分钟。

小W 走迷宫
【问题描述】
小W 被小M 困在了一个方格矩阵迷宫里,矩阵边界在无穷远处,我们做出如下的
假设:
a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;
b. 走过的格子立即塌陷无法再走第二次;
c. 只能向北、东、西三个方向走。
小W 走了没多久就累坏了,他很想知道如果允许在方格矩阵上走 N 步,共有多少
种不同的方案。( 开始时小W 就在方格矩阵上的任意位置,2 种走法只要有一步不一样,
即被认为是不同的方案)
【输入格式】
一行输入N。
【输出格式】

一行输出方案个数。

/*可以发现由于只有三个方向且不能回头,所以和位置并没有任何关系,那么就只和剩下的step和到达方向有关系,所以用num【i】【j】表示还剩下j步,且通过i方向到达当前这一步。这样的时间复杂度是O(n*3)的;注意题目需要用高精度!!! */#include 
#include
#include
#include
#define N 10000using namespace std;int n;bool vis[N][4];int num[N][4][N],ans[N],as,tmp[N],len,nxt;void dfs(int frm,int cal_dep){ if(!cal_dep) { vis[cal_dep][frm]=1;num[cal_dep][frm][1]=1;num[cal_dep][frm][0]=1; int x=1; while(x<=as && ans[x]==9) x++; as=max(as,x);ans[x]++; for(int i=1;i
#include
#include
#include
#define N 300000using namespace std;int n,nxt=0,len,lena,lenb,as;int a[N],b[N],ans[N];void cal(){ nxt=0;len=1; while(len<=lenb) { int tmp=b[len]*2+nxt; ans[len]=(tmp)%10; nxt=tmp/10; len++; } if(nxt) ans[len]=nxt; else len--; as=len; }void del(){ nxt=0;len=1; while(len<=lena || len<=as) { int tmp=a[len]+ans[len]+nxt; ans[len]=tmp%10; nxt=tmp/10; len++; } if(nxt) ans[len]=nxt; else len--; as=len; for(int i=1;i<=lenb;i++) a[i]=b[i];lena=lenb; for(int i=1;i<=as;i++) b[i]=ans[i];lenb=as;}int main(){ freopen("game.in","r",stdin); freopen("game.out","w",stdout); scanf("%d",&n); if(n<=2){ printf("%d",(n==1?3:7));return 0 ; } a[1]=3;b[1]=7;lena=1;lenb=1; for(int i=3;i<=n;i++) { cal();del(); } for(int i=as;i;i--) printf("%d",ans[i]); return 0; }

转载地址:http://frqji.baihongyu.com/

你可能感兴趣的文章
剑指_复杂链表的复制
查看>>
服务器普通用户(非管理员账户)在自己目录下安装TensorFlow
查看>>
星环后台研发实习面经
查看>>
大数相乘不能用自带大数类型
查看>>
字节跳动后端开发一面
查看>>
CentOS Tensorflow 基础环境配置
查看>>
centOS7安装FTP
查看>>
FTP的命令
查看>>
CentOS操作系统下安装yum的方法
查看>>
ping 报name or service not known
查看>>
FTP 常见问题
查看>>
zookeeper单机集群安装
查看>>
do_generic_file_read()函数
查看>>
Python学习笔记之数据类型
查看>>
Python学习笔记之特点
查看>>
Python学习笔记之安装
查看>>
shell 快捷键
查看>>
VIM滚屏操作
查看>>
EMC 2014存储布局及十大新技术要点
查看>>
linux内核内存管理(zone_dma zone_normal zone_highmem)
查看>>