解釋
M = 5
代表從商店3到商店四的最短距離。
回到上面整理的資料,看十字的圖形。
2+1=3 5+1=6 2+3=5 1+0=1 1+0=1
所以最小值為1
在看表格
---------------------------------------------------------------------------------------
所以,當s=0,e=2時
0+9=9 5+8=13 9+0=9 2+5=7 1+1=2
所以最小值為2
---------------------------------------------------------------------------------------
不然再試一組測資,s=1,e=0
0+5=5 5+0=5 9+8=17 2+3=5 1+2=3
所以最小值為3
- #include <iostream>
- using namespace std;
- int main() {
- // pro3
- int n,m, min=0, p, q;
- bool fir = true;
- cin >> n >> m;
- int PQ[m][m];
- for(int i=0;i<m;i++)
- {
- for(int j=0;j<m;j++)
- {
- cin >> PQ[i][j];
- }
- }
- for(int j = 0;j<n;j++)
- {
- cin >> p >> q;
- for(int i = 0;i<m;i++)
- {
- if(fir)
- {
- min = PQ[p][i]+PQ[q][i];
- fir = false;
- }
- else if(PQ[p][i]+PQ[q][i] < min)
- {
- min = PQ[p][i]+PQ[q][i];
- }
- }
- cout << min << endl;
- min=0;
- fir = true;
- }
- return 0;
- }
沒有留言:
張貼留言