試題 歷屆試題 剪格仔(c )

2021-10-10 01:29:33 字數 2032 閱讀 6462

dfs(x, y, _ans, _sum)

朝四個方向遞迴然後不行就回溯

下面是兩份**,最下面那份帶了注釋,自行**

#include

using

namespace std;

const

int maxn =

1e3+5;

const

int inf =

1e5;

int arr[maxn]

[maxn]

;int row, cal;

int ans = inf, sum =0;

bool vis[maxn]

[maxn]

;// void dfs(int x, int y, int _sum, int _ans)

// // /*

// 能夠到這一步的都是_ans <= ans

// 此時_sum == sum 直接替換一下ans

// 然後回溯就可以啦

// */

// if (_sum == sum)

// dfs(x - 1, y, _sum, _ans), dfs(x, y - 1, _sum, _ans);

// dfs(x + 1, y, _sum, _ans), dfs(x, y+1, _sum, _ans);

// vis[x][y] = false;

// }

void

dfs(

int x,

int y,

int _ans,

int _sum)

if(_sum == sum)

dfs(x -

1, y, _ans, _sum)

;dfs

(x, y -

1, _ans, _sum)

;dfs

(x +

1, y, _ans, _sum)

;dfs

(x, y +

1, _ans, _sum)

; vis[x]

[y]=

false;}

intmain()

} cout <<

"["<< sum <<

"]"<< endl;

if(sum %2==

1)cout <<

0<< endl;

else

system

("pause");

return0;

}// #include

// using namespace std;

// const int inf = 1 << 30;

// int sum = 0;

// int m, n, a[15][15], ans;

// bool vis[15][15];

// void dfs(int x, int y, int _sum, int _ans)

// // /*

// 能夠到這一步的都是_ans <= ans

// 此時_sum == sum 直接替換一下ans

// 然後回溯就可以啦

// */

// if (_sum == sum)

// dfs(x - 1, y, _sum, _ans), dfs(x, y - 1, _sum, _ans);

// dfs(x + 1, y, _sum, _ans), dfs(x, y+1, _sum, _ans);

// vis[x][y] = false;

// }

// int main()

// // if (sum % 2 == 1)

//

// else

//

// return 0;

// }

歷屆試題 剪格仔

歷屆試題 剪格仔 時間限制 1.0s 記憶體限制 256.0mb 問題描述 如下圖所示,3 x 3 的格仔中填寫了一些整數。10 1 52 20 30 1 1 2 3 我們沿著圖中的星號線剪開,得到兩個部分,每個部分的數字和都是60。本題的要求就是請你程式設計判定 對給定的m x n 的格仔中的整數...

歷屆試題 剪格仔

藍橋杯 2014 02 13 17 08 50人閱讀收藏 舉報歷屆試題 剪格仔 時間限制 1.0s 記憶體限制 256.0mb 問題描述 如下圖所示,3 x 3 的格仔中填寫了一些整數。10 1 52 20 30 1 1 2 3 我們沿著圖中的星號線剪開,得到兩個部分,每個部分的數字和都是60。本題...

歷屆試題 剪格仔

歷屆試題 剪格仔 時間限制 1.0s 記憶體限制 256.0mb 問題描述 如下圖所示,3 x 3 的格仔中填寫了一些整數。10 1 52 20 30 1 1 2 3 我們沿著圖中的星號線剪開,得到兩個部分,每個部分的數字和都是60。本題的要求就是請你程式設計判定 對給定的m x n 的格仔中的整數...