a902: 2048~(1)
標籤 : 2048
通過比率 : 3人/4人 ( 75% ) [非即時]
評分方式:
Tolerant

最近更新 : 2023-04-06 18:52

內容

眾所周知,2048是一個簡單、經典又好玩的遊戲。該遊戲使用方向鍵讓方塊整體上下左右移動。如果兩個帶有相同數字的方塊在移動中碰撞,則它們會合併為一個方塊,且所帶數字變為兩者之和。每次移動時,會有一個值為$2$或者$4$的新方塊出現,畫面上所出現的數字必皆為$2$的正整數次方。沒玩過的點這裡

2048對之前的柏霖來說一直是個很難的遊戲,因為他總是把方塊到處亂滑然後很容易把自己搞死,不然就是因為新的方塊刷在一些奇怪的位置然後被搞死。不過他最近發現了一個可以回復到上一步也可以更改介面大小的遊戲版本,容錯率直線上升,開始合成出諸如65536等一些之前根本不可能出現的數字,分數也從20000多飆到2000000多。

接著柏霖開始好奇有關分數的值。已知每合成出一個數字時就會得到該數字的分數(例如用$2$$2$合成$4$時分數就會$+4$),他想讓畫面上出現的最大數字為$n$且畫面中所有數字最多只出現一次,則此時他可獲得的分數最小及最大為多少?

輸入說明

第一行輸入一數$t$代表有$t$筆測資、及一數$s$代表遊戲介面大小為$s×s$,之後重複$t$次每次輸入一個正整數$n$($n$必為$2$的次方且保證$n<2^{50}$),請輸出得到此數字的最小及最大分數為多少

輸出說明

請輸出最小及最大分數,中間以空格隔開,每筆測資輸出完請換行。如果不可能合成出該數字請輸出"just imagine~"(不含引號)

答案請$mod$ $10^9+7$再輸出

範例輸入
3 3
8
16
1048576
範例輸出
8 20
32 68
just imagine~
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (25%): 1.0s , <1K
公開 測資點#1 (25%): 1.0s , <1K
公開 測資點#2 (25%): 1.0s , <1K
公開 測資點#3 (25%): 1.0s , <1K
提示 :

遊戲介面最小為$3×3$,最大為$7×7$

$測資有誤請告知$

 

稍微解釋一下算法
以範測的$8$為例,最小分數就是假設所有出現的數字皆為$4$,且畫面上只有一個$8$及合成$8$同時出現的$4$,因此會有$8$$(4+4=8)$;最大分數則假設所有出現的數字皆為$2$,且畫面上出現$8、4、2$各一個,分數就是$(4+4+8)+4=20$

夠水了吧

標籤:
2048
出處:
[管理者:
aaaron08813 (12th 副初階教學/柏霖)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」