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 ...