codevs 1337 銀行裡的迷宮

2021-07-23 05:37:10 字數 1379 閱讀 6947

codevs1337 銀行裡的迷宮

題目大意:給你個n*m的迷宮,要求在給定的時間t內從(1,1)走到(n,m)並經過乙個a,如果不能就輸出「oh my god!」(沒有a就不用走a,而且只能向下或向右走)。

輸入描述 input description

第1行是n,m, time,三個整數。

第2到n+1行每行有m個字母(有大寫也有小寫的)

字母解析:t(t)是陷阱,w(w)是牆,r(r)是路,a(a)是**~ (遇到不認識的字元就~算之為路!)

輸出描述 output description

僅一行走出迷宮的最小時間t(走一步要一秒的說),不能在規定時間走出迷宮,或者 打不了**,請輸出「oh my god!」(不包括引號)。

思路:因為只能向下或向右而且必須經過乙個a,我們可以把所有a的座標都存下來然後列舉起點到每個a的距離和終點到每個的a的距離,取min,即起點到終點的最短距離,其餘的就是簡單的偽dp了。

題解:

#include

#include

#include

using

namespace

std;

const

int maxn=100000;

int n,m,t;//變數不能設為time,否則會ce

char a[505][505];

struct ccf[maxn<<2];

int ans;

int dp[505][505];

int dp1[505][505];

int main()

else

if(a[i][j]=='a'||a[i][j]=='a')}}

for(int i=1;i<=n;i++)

else

if(a[i][j]=='t'||a[i][j]=='t')

else

if(a[i][j]=='a'||a[i][j]=='a')

else

if(a[i][j]=='s'||a[i][j]=='s')//有個奇怪的s,當做r就好了。

dp[1][1]=0;}}

for(int i=n;i>=1;i--)

else

if(a[i][j]=='t'||a[i][j]=='t')

else

if(a[i][j]=='a'||a[i][j]=='a')

else

if(a[i][j]=='s'||a[i][j]=='s')

dp1[n][m]=0;}}

ans=1000000;

for(int i=1;i<=tot;i++)

if(ans>t)

else

return

0;}

codevs 4159 hzwer的迷 數列

hzwer找了乙個人畜無害的迷 數列 現在hzwer希望對這個數列進行一些操作,請你來回答hzwer的問題。操作一 查詢第i個數的大小 操作二 把第i個數的大小改成x 操作三 將整個序列反轉。即把第i個數放到第n i 1個。輸入資料第一行兩個數n,m,表示數列長度和運算元。第二行n個數,表示n個元素...

AS5600 桂林銀行桌面虛擬化裡的黑科技

當移動辦公的需求受制於傳統pc端不可移動的特質,當伺服器數量不斷增多 機房可利用的空間越來越小,由此帶來的問題是一連串的 應用數量龐雜 資源利用率低 單點故障 管理困難 業務辦理效率低 如何將這些問題一一化解?浪潮儲存來分享一項黑科技。廣西老百姓 家門口的銀行 如何提公升業務效率 桂林銀行成立於19...

找到的不再是「在銀行裡下象棋的奧特曼」

框搜尋的核心是語義web 也就是基於語義的搜尋,可以通過乙個笑話來說明,有乙個笑話 一女子,開出徵婚條件有兩點.1.要帥 2.要有車 電腦去幫她搜尋 結果 象棋 這位女子,不服搜出的結果又輸入 1.要有漂亮的房子 2.要有很多錢 電腦去幫她再次搜尋的結果 銀行 此女子仍然不失望,繼續輸入條件 1要長...