SSL 1644取數字問題

2021-10-11 21:32:18 字數 1564 閱讀 2302

time limit:1000ms

memory limit:65536k給定m*n的矩陣,其中的每個元素都是-10到10之間的整數。你的任務是從左上角(1,1)走到右下角(m,n),每一步只能向右或向下,並且不能走出矩陣的範圍。你所經過的方格裡面的數字都必須被選取,請找出一條最合適的道路,使得在路上被選取的數字之和是盡可能小的正整數。

第一行兩個整數m,n,(2<=m,n<=10),分別表示矩陣的行和列的數目。

接下來的m行,每行包括n個整數,就是矩陣中的每一行的n個元素。

僅一行乙個整數,表示所選道路上數字之和所能達到的最小的正整數。如果不能達到任何正整數就輸出-1。

2 20 2

1 0用bool陣列儲存所有的狀態。

如果可以得到,值為1,否則為0。

如果不越界且沒訪問過,標記為1,深搜下去。

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

const

int s=50;

int n,m,a[

110]

[110];

bool f[

1010][

1010][

1010];

void

input()

}return;}

void

dfs(

int x,

int y,

int t)

void

output()

}printf

("-1");

return;}

intmain()

用bool陣列儲存所有的狀態。

如果可以得到,值為1,否則為0。

如果f[i-1][j][k]或f[i][j-1][k]為1,f[i][j][k]標記為1。

1<=i<=n,1<=j<=m,0<=k<=20.

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

const

int s=50;

int n,m,a[

110]

[110];

bool f[

1010][

1010][

1010];

void

input()

}return;}

voiddp(

)}}return;}

void

output()

}printf

("-1");

return;}

intmain()

SSL 1644 取數字問題

取數字問題 time limit 10000ms memory limit 65536k total submit 300 accepted 101 case time limit 1000ms description 給定m n的矩陣,其中的每個元素都是 10到10之間的整數。你的任務是從左上角 ...

取數字問題

給定m n的矩陣,其中的每個元素都是 10到10之間的整數。你的任務是從左上角 1,1 走到右下角 m,n 每一步只能夠向右或者向下,並且不能夠走出矩陣的範圍。你所經過的方格裡面的數字都必須被選取,請找出一條最合適的道路,使得在路上被選取的數字之和是盡可能小的正整數。輸入第1行是兩個整數m和n,2 ...

取數字問題

取數字問題 time limit 10000ms memory limit 65536k total submit 308 accepted 104 case time limit 1000ms description 給定m n的矩陣,其中的每個元素都是 10到10之間的整數。你的任務是從左上角 ...