中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

室內(nèi)設計公司辦公室圖片百度seo工作室

室內(nèi)設計公司辦公室圖片,百度seo工作室,怎么用網(wǎng)站做chm,沈陽做網(wǎng)站怎樣收費機器人走路 假設有排成一行的N個位置記為1~N,N一定大于或等于2 開始時機器人在其中的start位置上(start一定是1~N中的一個) 如果機器人來到1位置,那么下一步只能往右來到2位置; 如果機器人來到N位置,那么下一步只能往左來到N-1位…

機器人走路

假設有排成一行的N個位置記為1~N,N一定大于或等于2
開始時機器人在其中的start位置上(start一定是1~N中的一個)
如果機器人來到1位置,那么下一步只能往右來到2位置;
如果機器人來到N位置,那么下一步只能往左來到N-1位置;
如果機器人來到中間位置,那么下一步可以往左走或者往右走;
規(guī)定機器人必須走K步,最終能來到aim位置(P也是1~N中的一個)的方法有多少種
給定四個參數(shù) N,start,aim,K 返回能走到的方法數(shù)

遞歸思路

1、當cur在1位置時,只能向2位置移動
2、當cur在N位置時,只能向N-1位置移動
3、當cur在中間位置,可以向cur+1位置移動、也可以向cur-1位置移動
4、如果剩余步數(shù)剛好走完時,來到目標位置,返回1,否則返回0

class RobotWalk(object):def ways_a(self, pos, steps, start, target):""":param pos: 總共有pos個位置:param steps: 可以走的步數(shù):param start: 開始位置:param target: 目標位置:return:"""if pos < 2 or steps < 1 or start < 1 or start > pos or target < 1 or target > pos:return 0return self.process_a(pos, start, steps, target)def process_a(self, pos, cur, rest, target):""":param pos: 總共有pos個位置:param cur: 當前來到的位置:param rest: 還剩下的步數(shù):param target: 目標位置:return: 機器人從cur出發(fā),走過rest步之后,最終停留在target的方法數(shù)"""# 步數(shù)走完時,如果機器人剛好到達目標位置,則返回1if rest == 0:return 1 if cur == target else 0# 如果在1位置,只能向右走 -> cur+1if cur == 1:return self.process_a(pos, cur + 1, rest - 1, target)# 如果在最后一個位置,只能向左 -> cur-1if cur == pos:return self.process_a(pos, cur - 1, rest - 1, target)# 中間位置 既能向左又能向右return self.process_a(pos, cur + 1, rest - 1, target) + self.process_a(pos, cur - 1, rest - 1, target)

動態(tài)規(guī)劃

加緩存

class RobotWalk(object):def ways_b(self, pos, steps, start, target):""":param pos: 總共有pos個位置:param steps: 可以走的步數(shù):param start: 開始位置:param target: 目標位置:return:"""if pos < 2 or steps < 1 or start < 1 or start > pos or target < 1 or target > pos:return 0# 轉移條件 剩下的步數(shù) 和 當前位置# 當前位置cur 范圍 1~pos# 剩余步數(shù)rest 范圍 0~steps# steps(總步數(shù)) 列 pos(總共位置數(shù)) 行的數(shù)組cache = [[-1] * (steps + 1) for _ in range(pos + 1)]return self.process_b(pos, start, steps, target, cache)def process_b(self, pos, cur, rest, target, cache):"""加緩存減少重復計算:param pos::param cur::param rest::param target::param cache::return:"""# 當前位置沒有計算過,則計算后存入緩存,否則直接返回緩存數(shù)據(jù)if cache[cur][rest] == -1:# 步數(shù)走完時,如果機器人剛好到達目標位置,則返回1if rest == 0:index = 1 if cur == target else 0elif cur == 1:index = self.process_b(pos, 2, rest - 1, target, cache)elif cur == pos:index = self.process_b(pos, pos - 1, rest - 1, target, cache)else:index = self.process_b(pos, cur + 1, rest - 1, target, cache) + \self.process_b(pos, cur - 1, rest - 1, target, cache)cache[cur][rest] = indexreturn cache[cur][rest]

假如:
位置數(shù) pos=6
剩余步數(shù)steps=5
開始位置start=1
目標位置target=4
cur為當前位置
創(chuàng)建動態(tài)表dp 行代表位置數(shù) pos(1,pos), 列代表剩余步數(shù)rest(0,steps)
根據(jù)遞歸條件填表:
1、當剩余步數(shù)為0時,剛好來到target位置,dp值為1,如果在其他位置,說明未到目標位置,dp值為0
即:dp[cur][rest] = dp[4][0] = 1
2、當cur=1時,只能向2位置移動,都依賴dp[2][rest-1]位置的值
3、當cur=pos時,只能向pos-1位置移動,都依賴dp[pos-1][rest-1]位置的值
4、當1<cur<pos時,既能向cur-1位置移動,也能向cur+1位置移動,都依賴dp[cur-1][rest-1]+dp[cur+1][rest-1]
最終求dp[start][rest] --> dp[1][5] = 4

| cur/rest

位置/剩余步數(shù)012345
0xxxxxx
1000104
2001040
30103010
4102060
5010309
6001030

代碼實現(xiàn)

class RobotWalk(object):def ways_c(self, pos, steps, start, target):""":param pos: 總共有pos個位置:param steps: 可以走的步數(shù):param start: 開始位置:param target: 目標位置:return:"""if pos < 2 or steps < 1 or start < 1 or start > pos or target < 1 or target > pos:return 0# 當前位置cur 范圍 1~pos# 剩余步數(shù)rest 范圍 0~steps# steps(總步數(shù)) 列 pos(總共位置數(shù)) 行的數(shù)組dp = [[0] * (steps + 1) for _ in range(pos + 1)]# 當剩余0步時,剛好來到target位置 則dp值為1, 其他位置值為0dp[target][0] = 1# 列for col in range(1, steps + 1):# 第一行依賴左下元素dp[1][col] = dp[2][col - 1]# 中間行依賴左下和左上for row in range(1, pos):dp[row][col] = dp[row + 1][col - 1] + dp[row - 1][col - 1]# 最末行依賴左上元素dp[pos][col] = dp[pos - 1][col - 1]return dp[start][steps]
http://www.risenshineclean.com/news/64129.html

相關文章:

  • 網(wǎng)站制作學什么軟件成都網(wǎng)絡推廣公司
  • 沒有服務器做網(wǎng)站免費下載優(yōu)化大師
  • 教人做飲料的網(wǎng)站做百度推廣的公司電話號碼
  • 網(wǎng)站建設首頁模板下載優(yōu)化大師怎么提交作業(yè)
  • 制作網(wǎng)站服務企業(yè)查詢軟件
  • 運用asp做購物網(wǎng)站的心得google瀏覽器官方下載
  • 淘客網(wǎng)站+wordpress上海百度seo優(yōu)化
  • 網(wǎng)站應該如何進行優(yōu)化網(wǎng)絡營銷分類
  • 做網(wǎng)站建網(wǎng)站安卓手機游戲優(yōu)化器
  • 河南企業(yè)網(wǎng)站制作個人怎么做網(wǎng)站
  • 中國域名注冊中心做博客的seo技巧
  • 上海專業(yè)制作電子商務網(wǎng)站廣西seo公司
  • 做字的網(wǎng)站個人友情鏈接推廣
  • wordpress編輯器 模板seopeixun com cn
  • 動態(tài)網(wǎng)站開發(fā) 實訓總結環(huán)球貿(mào)易網(wǎng)
  • 解除網(wǎng)站被攔截的方法快手流量推廣免費網(wǎng)站
  • 合肥建網(wǎng)站公司騰訊與中國聯(lián)通
  • 各大網(wǎng)站提交入口怎么聯(lián)系地推公司
  • 西安火車站網(wǎng)站建設安卓優(yōu)化大師官方下載
  • 頂級裝修公司百度小程序優(yōu)化
  • 莆田網(wǎng)站建設技術托管南陽網(wǎng)站seo
  • 開發(fā)公司屬于什么行業(yè)網(wǎng)站優(yōu)化 seo和sem
  • 中國專業(yè)的網(wǎng)站建設12月10日新聞
  • 義烏多語言網(wǎng)站建設seo網(wǎng)絡推廣技術
  • 做五金生意什么網(wǎng)站做比較好精準營銷的三要素
  • 網(wǎng)站首頁的模塊布局杭州百度快速排名提升
  • 做競猜網(wǎng)站合法嗎如何快速提升網(wǎng)站關鍵詞排名
  • 哪個平臺查企業(yè)免費谷歌aso優(yōu)化
  • 專業(yè)做網(wǎng)站公司哪家好一句簡短走心文案
  • 個人做理財網(wǎng)站好上海seo關鍵詞優(yōu)化