左右中只能選乙個方向,若選擇左只能一直向左走。上下中只能選擇乙個方向,若選擇下只能一直向下。
所以有2種情況
(1)二者位置在對角線上
(2)兩者位置重合或處於同一行或同一列
class visit
if(map[i][j]==2)
}//同行或同列 //這裡應該還能優化到下面的對角線那種情況(懶)
if(si==ei)
if(sj==ej)
//對角線 //裸的動態規劃
if(si>ei)
int g=1;if(sj>ej) g=-1;
for(int i=si+1;i<=ei;i++)
for(int j=sj+g;;j+=g)
else
if(map[si][j]==0) dp[si][j]=1;
else
break;
}for(int i=si+1;i<=ei;i++)
else
dp[i][j]=dp[i-1][j]+dp[i][j-g];
cout}};
牛客(美團) 拜訪(動態規劃)
現在有乙個城市銷售經理,需要從公司出發,去拜訪市內的商家,已知他的位置以及商家的位置,但是由於城市道路交通的原因,他只能在左右中選擇乙個方向,在上下中選擇乙個方向,現在問他有多少種方案到達商家位址。給定乙個地圖map及它的長寬n和m,其中1代表經理位置,2代表商家位置,1代表不能經過的地區,0代表可...
拜訪 動態規劃
現在有乙個城市銷售經理,需要從公司出發,去拜訪市內的商家,已知他的位置以及商家的位置,但是由於城市道路交通的原因,他只能在左右中選擇乙個方向,在上下中選擇乙個方向,現在問他有多少種方案到達商家位址。給定乙個地圖map及它的長寬n和m,其中1代表經理位置,2代表商家位置,1代表不能經過的地區,0代表可...
牛客動態規劃題1
給你乙個長度為50的數字串,問你有多少個子序列構成的數字可以被3整除 答案對1e9 7取模 輸入描述 輸入乙個字串,由數字構成,長度小於等於50 輸出描述 輸出乙個整數 示例1輸入 複製132 輸出複製 3示例2 輸入複製9輸出 複製1示例3輸入 複製333 輸出複製 7示例4 輸入複製 12345...