UPC 方格取數

2021-10-01 04:51:30 字數 1387 閱讀 8207

題目描述

在 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 97

sample 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次,現在要求...