20180807模擬測試 t1 function

2021-08-22 10:36:02 字數 1355 閱讀 2698

low逼的我也只能寫這樣的水題。。。

對於乙個整數,定義 f(x)為他的每個數字的階乘的乘積。例如 f(135)=1! * 3! * 5! =720。給出乙個數 a(可以包含字首零),a 滿足他的至少乙個數字大於 1。我們要求出最大 的整數 x,其中 x 不含 0 或 1,並且滿足 f(a) = f(x)。

【輸入】

第一行乙個整數 n,表示 a 的長度。 接下來乙個整數 a。

【輸出】

一行乙個整數 x 表示答案。

【輸入樣例 1】

4 1234

【輸出樣例 1】

33222

【樣例 1 說明】

1! * 2! * 3! * 4! = 3! * 3! * 2! * 2! * 2!

算了吧,你看著我無比整齊的**會明白的

emm,以下官方正解

統計出質數 2、3、5、7 作為因子出現了多少次。

我們 claim 最後的答案一定由這四個數字構成。(比如考慮 8,還不如 7222)。

我們看看可以放幾個 7,能放幾個放幾個,然後我們就沒有 7 了。

我們看看可以放幾個 5,能放幾個放幾個,然後我們就沒有 5 了。

我們看看可以放幾個 3,能放幾個放幾個,然後我們就沒有 3 了。

最後再把剩下的 2 全放上去。

親測9!=7!*3!*3!*2!

8!=7!*2!*2!*2!

。。。

以此類推9個數而已3分鐘就推完了

反正寧願要多位數不要大的個位數

哪那麼多廢話

拆了 然後就只剩2,3,5,7開始拼湊(這和你拆的時候是個反向過程)

#include

#include

#include

#include

using

namespace

std;

int a[10010],b[1001],n,c[100100],cnt=0;

int main()

if(a[i]==3)

if(a[i]==4)

if(a[i]==5)

if(a[i]==6)

if(a[i]==7)

if(a[i]==8)

if(a[i]==9)

}for(int i=7;i>=2;i--)

if(i==3)

if(i==4)

if(i==5)

if(i==6)

if(i==7)}}

for(int i=1;i<=cnt;i++)

printf("%d",c[i]);

return

0;}

20180807模擬測試 T2 box

有個桌子長 r 寬 c,被分為 r c 個小方格。其中,一些方格上有箱子,一些方格上有按 鈕,一些方格上有障礙物,一些方格上是空地。現在有個任務,需要把所有箱子推到這些按 鈕上面。箱子有個特徵,只能推不能搬不能拉。現在需要用最少的步數把所有箱子推到按鈕 上。當然,箱子和人都只能以格仔為單位移動,不存...

16 1112 模擬考試 T1

加密 問題描述 有一種不講道理的加密方法是 在字串的任意位置隨機插入字元。相應的,不講道理的解密方法就是從字串中恰好刪去隨機插入的那些字元。給定原文s和加密後的字串t,求?有多少子串可以通過解密得到原文s。輸入格式 輸入第一行包含乙個字串t,第二行包含乙個字串s。輸出格式 輸出一行,包含乙個整數,代...

20220219模擬 T1貨幣

我們考慮設 f i 表示當 i 作為右端點的時候,它的左端點最大是多少能夠包含所有顏色 我們考慮設 nxt i 表示 i 後面第乙個和它顏色一樣的位置是 那麼 f i 的計算方式就是 min 我們發現我們用 set 維護 pos 啟發式合併就可以在求 nxt i 的地方做到 o n log 2 n ...