數字遊戲題解

2021-05-23 04:51:23 字數 839 閱讀 6941

題目描述:

丁丁最近沉迷於乙個數字遊戲之中。這個遊戲看似簡單,但丁丁在研究了許多天之後卻發覺原來在簡單的規則下想要贏得這個遊戲並不那麼容易。遊戲是這樣的,在你面前有一圈整數(一共n個),你要按順序將其分為m個部分,各部分內的數字相加,相加所得的m個結果對10取模後再相乘,最終得到乙個數k。遊戲的要求是使你所得的k最大或者最小。

例如,對於下面這圈數字(n=4,m=2):

當要求最小值時,((2-1) mod 10)×((4+3) mod 10)=1×7=7,要求最大值時,為((2+4+3) mod 10)×(-1 mod 10)=9×9=81。特別值得注意的是,無論是負數還是正數,對10取模的結果均為非負值。

丁丁請你編寫程式幫他贏得這個遊戲。

輸入檔案第一行有兩個整數,n(1≤n≤50)和m(1≤m≤9)。以下n行每行有個整數,其絕對值不大於104,按順序給出圈中的數字,首尾相接。

輸出檔案有兩行,各包含乙個非負整數。第一行是你程式得到的最小值,第二行是最大值。

提交:http://www.rqnoj.cn/problem_52.html

解題思路:

記得做過一道題,講的是要給一串數字分成m份,使每份所組成數字的乘積最大。和這題很類似啊。

這題要的是和的最大值,所以要先做預處理,再dp就差不多了

還有就是環的問題,對於這種問題,我處理的方法一般就是n變成2n,既把1到n拷貝到n+1到2n。然後處理的時候長度最大為n,既 end-begin < n

預處理d[i][j]表示從第i個數加到第j個數的和模10是多少。j>=i 且 j-if[i][j][m]表示i到j分成m份的最大值

f[i][j][m] = max

最小值再做一遍就行了

題解 數字遊戲

the game is on.sherlock holmes 問題描述 遊戲是這樣的 在你面前有一圈整數 一共n個 你要按順序將其分為m個部分,各部分內的數字相加,相加所得的m個結果對10取模後再相乘,最終得到乙個數k。遊戲的要求是使你所得的k最大或者最小。例如,對於下面這圈數字 n 4,m 2 最...

題解 AcWing 1082 數字遊戲

link 定義不降數為從左到右各位數字呈非下降關係。求 a,b 之間有多少不降數。1 leq a leq b leq 2 1 把詢問差分,變為詢問 1,n 中不降數的個數。首先,我們可以 dp 出 x 位且最高位為 y 的不降數的個數 設 f 表示 i 位,且最高位為 j 的不降數的個數。計算的時候...

洛谷1274 魔術數字遊戲 題解

至少在洛谷2019年7月10日和之前,我擁有不打表程式中的 rank 1 提交記錄 神奇的提交記錄 吐槽一下樣例,它是不完整的。首先為了方便計算我們顯然要把乙個格仔的兩個座標壓成乙個整數。具體計算方法將 i,j 轉換為 i 1 times4 j 1 這裡我來介紹一種比較簡潔的打法,首先我們打表預處理...