日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

隧道计算

發布時間:2025/3/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 隧道计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?考慮下面的隧道圖片,由一系列天花板高度確定,即序列(7,9,6,8,7,9,8,7,9,6,8,7,9,8,7) )和相應的樓層高度序列,即序列(6,2,1,5,4,3,6,6,2,1,5,4,3,6,6)。在隧道西邊,可以看到距離為2的隧道(單位,無論是什么);這用藍色表示。在隧道內,可以看到最大距離為6的隧道;這是用綠色描繪的。請注意,在此圖片中,藍色和綠色片段的高度處于同一水平,但一般情況下它們可能處于不同的水平。此外,可能存在許多綠線段,因為可能存在隧道的許多部分,其中可以在相同的最大距離處看到隧道。

第一序列的第i個數應嚴格大于第二序列的第i個數,因為在隧道中的任何點,天花板都在地板上方。如果不是這種情況,則程序輸出另一個錯誤消息并退出。

該程序然后輸出:
從西方看隧道外的人可以看到隧道的距離;
在隧道內時人們可以看到隧道的最大距離。

ceiling = [7,9,6,8,7,9,8,7,9,6,8,7,9,8,7] floor = [6,2,1,5,4,3,6,6,2,1,5,4,3,6,6]if len(ceiling) != len(floor):exit("wrong") n = len(floor)# First step, we should find west tunnel min_ceiling = ceiling[0] max_floor = floor[0] for i in range(n):if ceiling[i]< min_ceiling:min_ceiling = ceiling[i]if floor[i] > max_floor:max_floor = floor[i]if max_floor >= min_ceiling:print ibreak # Second step, we should find inside tunnelmax_length = 0 for i in range(n):top = max(ceiling)cei = ceiling[i]flo = floor[i]bot = 0a = [bot,flo,cei,top]for j in range(i+1,n):if bot < flo or cei<top :if floor[j] >= flo:flo = -1else:bot = floor[j]if ceiling[j] <= cei:cei = max(ceiling)+1else:top = ceiling[j]else:if j-i-2>max_length:max_length = j-i-2break print max_length

總結

以上是生活随笔為你收集整理的隧道计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。