当前位置: 首页 > news >正文

重庆网站建设电话宁波seo网络推广咨询热线

重庆网站建设电话,宁波seo网络推广咨询热线,广告插件wordpress移动端,wordpress用户个人资料题目描述 小张冒充 X 星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 nn 个方格。如下图所示。 按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走&#xf…

题目描述

小张冒充 X 星球的骑士,进入了一个奇怪的城堡。

城堡里边什么都没有,只有方形石头铺成的地面。

假设城堡地面是 n×n 个方格。如下图所示。

1

按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走,也不能跳跃。每走到一个新方格,就要向正北方和正西方各射一箭。(城堡的西墙和北墙内各有 n 个靶子)同一个方格只允许经过一次。但不必走完所有的方格。如果只给出靶子上箭的数目,你能推断出骑士的行走路线吗?有时是可以的,比如上图中的例子。

本题的要求就是已知箭靶数字,求骑士的行走路径(测试数据保证路径唯一)

输入描述

第一行一个整数 N (0≤N≤20),表示地面有 N×N 个方格。

第二行 N 个整数,空格分开,表示北边的箭靶上的数字(自西向东)

第三行 N 个整数,空格分开,表示西边的箭靶上的数字(自北向南)

输出描述

输出一行若干个整数,表示骑士路径。

为了方便表示,我们约定每个小格子用一个数字代表,从西北角开始编号: 0,1,2,3 ⋯⋯

比如,上图中的方块编号为:

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

输入输出样例

示例

输入

4
2 4 3 4
4 3 3 3

输出

0 4 5 1 2 3 7 11 10 9 13 14 15

思路:

        DFS:题目要求输出一条路径,用DFS很合适,DFS搜索过程中,自然生成一条路径。
        剪枝:每走到一个格子,对应的靶子上箭多一支,靶子上的箭等于给定的数字后,就不用再DFS下去了。(或者做减法,靶子的数字减到0)
        记录路径的技巧:根据题目的要求,用栈来跟踪DFS的过程,记录DFS走过的路径,是最方便的。DFS到某个格子时,把这个格子放到栈里,表示路径增加了这个格子。DFS回溯的时候,退出了这个格子,表示路径上不再包括这个格子,需要从栈中弹走这个格子。

参考代码: 

def dfs(x,y):if a[x]<0 or b[y]<0:#先开头检验是否符合标准returnif x==n-1 and y==n-1:#走到终点flag=1for i in range(n): #检查每个箭靶上的数字是否减尽if a[i]!=0 or b[i]!=0:flag=0returnif flag==1:for i in range(len(path)):print(path[i],end=' ')l=[(1,0),(-1,0),(0,-1),(0,1)]  for i in range(4):xt=x+l[i][0]yt=y+l[i][1]if 0<=xt<n and 0<=yt<n and vis[xt][yt]==0:vis[xt][yt]=1  #标记现场path.append(xt*n+yt) #这个是坐标的计算方法a[xt]-=1;  b[yt]-=1dfs(xt,yt)  path.pop()  a[xt]+=1;  b[yt]+=1  #还原现场vis[xt][yt]=0n=int(input())
vis=[[0]*n for i in range(n)]
path=[]
path.append(0)
b=list(map(int,input().split()))
a=list(map(int,input().split()))
vis[0][0]=1
a[0]-=1;  b[0]-=1
dfs(0,0)

http://www.yidumall.com/news/5389.html

相关文章:

  • 仿牌做外贸建网站网络营销属于什么专业类型
  • 杭州做网站一般多少钱seo整站优化报价
  • 青羊区建设网站优化大师使用心得
  • 郑州做网站制作的公司培训机构排名
  • 招聘网站建设方案模板下载百度引流推广
  • 网站建设与管理自考seo专业学校
  • 网站外链可以在哪些平台上做外链公众号运营
  • 做收益的网站多少钱百度快照功能
  • ftp如何备份网站百度提交网站
  • 山西高端建设网站重庆百度快照优化
  • 西安定制网站建设免费数据统计网站
  • 专门做化妆品的网站百度 搜索热度
  • 网站 用什么数据库百度免费推广怎么做
  • 国际网站卖东西怎么做关键词的选取原则有
  • 网站套模板教程seo技术分享
  • 怎么做网站的软文推广山东百度推广总代理
  • php网站 数据库链接seo软件推荐
  • 广州 建设 招聘信息网站广告公司注册
  • 烟台福山网站建设网络营销课程个人总结范文
  • 网站营销应该怎么做百度搜索风云榜
  • 苏州专业做网站较好的公司有哪些百度商城官网
  • 手游充值代理平台成都seo技术
  • 网站点击量在哪里看软件测试培训
  • 网站平台建设公司合肥seo排名公司
  • 静态网站建设流程怎么写网址搜索引擎
  • 做网站需要找什么客户网络策划营销
  • 乐陵seo优化信seo赚钱培训课程
  • 自己做网站的域名武汉全网推广
  • 贵州微信网站建设手机上怎么制作网页
  • java 做网站的开源平台最新足球消息