題目描述
在 n 行、m 列的方格矩陣中,每個方格都包含乙個數字。小明可以從任意方格出發開始移動。每次移動可以移到與當前方格有一條邊相鄰的方格(即向上、下、左或右方向移動 1 格,且不能移出邊界)。除此之外,你移動到的方格中的數字必須比當前方格中的數字更大。輸入請你幫助小明程式設計規劃移動路徑,使路徑上經過的所有數字之和最大。
本題方格中的資料根據輸入的初始數字 s 按照如下演算法生成:
for i = 1, 2, … n
for j = 1, 2, … m
s ← (s × 345) mod 19997
矩陣第 i 行第 j 列方格中的數字為(s mod 10) + 1
數 n, m (方格的大小), s (資料生成器的初始數值)。1 ≤ n,m ≤ 100,1 ≤ s ≤ 19,997輸出
所有合法路徑中的最大數字和。sample input
4 5 97sample output hint
樣例資料1對應的矩陣如下。圖中路徑數字之和4 + 5 + 7 + 8 = 24。最近迷上了紅黑色調的圖案哈哈哈。嗝~~
**如下
#include
#pragma gcc optimize(2)
using
namespace std;
typedef
long
long ll;
int u[
105]
[105];
int maxn=0;
void dfs (
int temp,
int x,
int y)
}int
main()
for(
int i=
0; i
)for
(int j=
0; j
)dfs
(u[i+1]
[j+1
],i+
1,j+1)
; cout<
}
主要思路就是四叉樹+dfs
by-輪月
方格取數 1
problem description 給你乙個n n的格仔的棋盤,每個格仔裡面有乙個非負數。從中取出若干個數,使得任意的兩個數所在的格仔沒有公共邊,就是說所取的數所在的2個格仔不能相鄰,並且取出的數的和最大。input 包括多個測試例項,每個測試例項包括乙個整數n 和n n個非負數 n 20 ou...
特殊方格取數
特殊方格取數 在n n n 20 的方格棋盤上放置n 個車,某些格仔不能放,求使它們不能互相攻擊的方案總數。第一行,有兩個數 n m n表示方格棋盤大小,m表示不能放的格仔數量 下面有m行,每行兩個整數,為不能放的格仔的位置。只有一行,即得出的方案總數。2 1 1 1 1動態規劃,位運算,排列組合,...
方格取數 2
方格取數 2 時間限制 1 s 空間限制 128000 kb 題目描述 description 給出乙個n n的矩陣,每一格有乙個非負整數aij,aij 1000 現在從 1,1 出發,可以往右或者往下走,最後到達 n,n 每達到一格,把該格仔的數取出來,該格仔的數就變成0,這樣一共走k次,現在要求...