洛谷 P1002 過河卒 C語言

2021-10-05 03:43:12 字數 676 閱讀 6106

此題用動規即可解,但坑點在於,資料可能很大,因此4位元組int型別會溢位,貼一下第一次通過的**(醜到哭):

#includeint main(void)

break;

}else

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

break;

}else

} //填表

for( i=1;i<=n;i++)else if(map[i-1][j]==-1 && map[i][j-1]!=-1)else if(map[i-1][j]!=-1 && map[i][j-1]==-1)else if(map[i-1][j]!=-1 && map[i][j-1]!=-1)

}} }

printf("%.0f\n",map[n][m]);

return 0;

}

然後我就去優化這個**了(我瞥過一眼大佬的**,簡潔得不行,我就很菜了):

#includeint main(void)

map[0][1]=1;

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

} }printf("%.0f\n",map[n+1][m+1]);

return 0;

}

話說回來,這個新**看起來簡潔,實際上執行起來比舊**慢

洛谷 P1002 過河卒

棋盤上a點有乙個過河卒,需要走到目標b點。卒行走的規則 可以向下 或者向右。同時在棋盤上c點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,a點 0,0 b點 n,m n,m為不超過20的整數 同樣馬的位置座標是需要給出的。現在要求你計算...

洛谷P1002過河卒

dp水題,我都會做 我們考慮地圖上i,j的位置可以怎麼過來,因為卒只能向下或向右,所以當前位置只能由它的上方或左方轉移過來,所以f i j f i 1 j f i j 1 然後考慮邊界情況,沿著上沿和左沿只能向乙個方向走,所以f i 0 0,f 0 i 0,這是不考慮有馬的情況,當馬加入圖中後,我們...

洛谷 P1002 過河卒

棋盤上a點有乙個過河卒,需要走到目標b點。卒行走的規則 可以向下 或者向右。同時在棋盤上c點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,a點 0,0 b點 n,m n,m為不超過20的整數 同樣馬的位置座標是需要給出的。現在要求你計算...