題意:給乙個n*m的矩陣,用線分割成兩部分,兩部分數值的加和相同,可能有多種結果,輸出其中一種結果是包含左上角且這部分分割的塊數最小的數值。
思路:dfs都走一遍邊走邊判斷另一半與這一半的值是否相等,相等則更新含左上角的那部分數量。主要是通過標記走過,返回的時候還要再把標記和刪掉。
**
#include
using
namespace std;
typedef
long
long ll;
const
int n =
1e5+5;
int n,m,ans,cnt;
int a[15]
[15];
int vis[20]
[20];
int dir[4]
[2]=
,,,}
;int
check()
}}return sum;
}void
dfs(
int x,
int y,
int v)
for(
int i=
0; i<
4; i++)}
}int
main()
}dfs(0
,0,a[0][
0]);
if(ans!=
0x3f3f3f3f
)else
printf
("0\n");
return0;
}
歷屆試題 剪格仔 (DFS)
link 問題描述 如下圖所示,3 x 3 的格仔中填寫了一些整數。10 1 52 20 30 1 1 2 3 我們沿著圖中的星號線剪開,得到兩個部分,每個部分的數字和都是60。本題的要求就是請你程式設計判定 對給定的m x n 的格仔中的整數,是否可以分割為兩個部分,使得這兩個區域的數字和相等。如...
歷屆試題 剪格仔 dfs
問題描述 如下圖所示,3 x 3 的格仔中填寫了一些整數。10 1 52 20 30 1 1 2 3 我們沿著圖中的星號線剪開,得到兩個部分,每個部分的數字和都是60。本題的要求就是請你程式設計判定 對給定的m x n 的格仔中的整數,是否可以分割為兩個部分,使得這兩個區域的數字和相等。如果存在多種...
歷屆試題 剪格仔
歷屆試題 剪格仔 時間限制 1.0s 記憶體限制 256.0mb 問題描述 如下圖所示,3 x 3 的格仔中填寫了一些整數。10 1 52 20 30 1 1 2 3 我們沿著圖中的星號線剪開,得到兩個部分,每個部分的數字和都是60。本題的要求就是請你程式設計判定 對給定的m x n 的格仔中的整數...