牛客練習賽58 D 迷宮 dp

2022-06-07 02:00:14 字數 638 閱讀 7491

考慮到無論往左走還是往下走,下一步又會回來,進而不斷在兩個格仔間來回跳,所以只能往右走或者往下走,並且優先往右走

設 \(f[i][j]\) 表示走到 \((i,j)\) 的最小操作次數,考慮轉移

\[\begin

f[i][j] \to f[i][j+1]

\\f[i][j] + [s[i][j+1]='0'] \to f[i+1][j]

\end

\]暴力轉移即可

(我個渣渣場上居然在寫 dijkstra……)

#include using namespace std;

int n,m;

char s[1005][1005];

int f[1005][1005];

void sh(int x,int &y)

signed main()

memset(f,0x3f,sizeof f);

f[1][1]=0;

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

}cout<1e7?-1:f[n][m]);

}

牛客練習賽58 D 迷宮

乙個n m迷宮,迷宮中每個格仔用0或1表示,0表示該格仔可以通過,1表示該格仔是個障礙物,牛妹站在格仔 1,1 出口在格仔 n,m 牛妹想要走出迷宮,但牛妹只會按以下策略走 牛妹當前所在的格仔稱為當前格仔 如果當前格仔右邊沒有障礙物,牛妹就向右走,否則轉到2。如果當前格仔下方沒有障礙物,牛妹就向下走...

牛客練習賽58 D 迷宮

題目鏈結 有乙個n m迷宮,迷宮中每個格仔用0或1表示,0表示該格仔可以通過,1表示該格仔是個障礙物,牛妹站在格仔 1,1 出口在格仔 n,m 牛妹想要走出迷宮,但牛妹只會按以下策略走 牛妹當前所在的格仔稱為當前格仔 1.如果當前格仔右邊沒有障礙物,牛妹就向右走,否則轉到2。2.如果當前格仔下方沒有...

牛客練習賽58

a 給你兩個序列ai,bia i,b i ai bi 然後讓你兩兩配對相加,使得最大值最小。貪心。乙個從大到小排,乙個從小到大排,直接相加。b給你乙個01字串,然後讓你找到最多的組,滿足每一組都有0和1。貪心。從前往後掃。遇到0和1是立馬累加,思路 一開始想得是每次挑出行和列中的最大值,然後累加,沒...