此題用動規即可解,但坑點在於,資料可能很大,因此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的整數 同樣馬的位置座標是需要給出的。現在要求你計算...