首页 > 试题广场 >

取数游戏

[编程题]取数游戏
  • 热度指数:1295 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
{\hspace{15pt}}一个 N\times M 的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻 8 个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。

输入描述:
{\hspace{15pt}}第一行有一个正整数 T1\leqq T\leqq 20,表示了有 T 组数据。

{\hspace{15pt}}对于每一组数据,第一行有两个正整数 N,M1\leqq N, M\leqq 6,表示了数字矩阵为 N 行 M 列。

{\hspace{15pt}}接下来 N 行,每行 M 个非负整数,描述了这个数字矩阵,满足 1 \leqq a_{i,j}\leqq 10^5


输出描述:
{\hspace{15pt}}输出共 T 行,每行一个非负整数,输出所求得的答案。
示例1

输入

1
3 3
1 1 1
1 1 1
1 1 1

输出

4
头像 在许愿的废话选手很有礼貌
发表于 2025-09-18 22:47:03
#include <iostream> using namespace std; #include<vector> int maxSum; int row,col; vector<vector<int>> grid; vector<vector& 展开全文
头像 爱读书的高级磨洋工很野蛮
发表于 2025-08-21 16:22:42
回溯法,确定一个点(i,j)后,从(i,j+1:)以及(i:,:)确认下一个点 T=int(input()) for i in range(T): N,M=tuple(map(int,input().split())) matrix=[] for j in range(N 展开全文
头像 ikun_ac
发表于 2025-08-08 22:42:04
题目链接 取数游戏 题目描述 给定 组数据。每组数据给出一个由非负整数构成的 数字矩阵。需要从矩阵中选出若干个数,使得任意两个被选中的位置在八连通意义下不相邻(即上下左右与四个对角方向均不能相邻)。求所有被选数字之和的最大值。 输入: 第一行一个正整数 对于每组数据:第一行两个正整数 、;接 展开全文
头像 牛客242693846号
发表于 2025-07-24 10:27:05
dx = [-1,-1,-1,0,0,1,1,1] dy = [-1,0,1,-1,1,-1,0,1] def in_bound(x:int, y:int, N:int, M:int): return 0 <= x < N and 0 <= y < M def d 展开全文
头像 丨阿伟丨
发表于 2025-08-29 11:05:58
题目链接 取数游戏 题目描述 给定一个 的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻的8个格子中的一个,即认为这两个数字相邻),求取出数字和的最大值。 解题思路 这是一个在网格中选取不相邻元素以获取最大和的经典问题。由于矩阵的维 展开全文