解題思路:y1s1,拿到這題我腦袋中只有暴力,觀摩了別人的部落格,學到了點東西。對於本題,我們可以知道,在b進製後有幾個0表示的是這個數是b的幾次方的倍數,於是題目便轉化為了求n的階乘最大能被b的幾次方整除,從唯一分解定理我們可以知道,我們對n的階乘和b唯一分解得到:
\(b=p1^\times p2^\times p3^……\)
\(n!=p1^\times p2^\times p3^……\)
於是問題又轉化為了求\(\,\frac……\}\)
於是我們把b分解質因數,把因數和個數存在陣列裡,然後對於每個因數都去算a的階乘裡有多少個那個因數,然後除以它在b中的次數,求它可以夠組成多少個b,對於每個因數都這麼算,然後取最小值。
code:
#includeusing namespace std;
#define ll long long
const int n = 1000005;
ll p[n],k[n],n,b;
int cnt;
ll f(ll x,ll y)
void slove(ll x)
} if(x > 1)
p[++cnt] = x,k[cnt] = 1;
}ll work(ll n, ll b)
int main()
codeforces 1114F 線段樹練習
這是一道用線段樹維區間值的一道題,題意很簡單,就是對於給定的乙個序列,初始時每個數的值不大於300,然後有兩中操作,乙個是對區間 l,r 的每個數乘上以個數x,乙個是詢問區間的乘積的尤拉函式值,首先對於第乙個操作顯然可以用線段樹的延遲更新來完成,對於第二個操作,我最先沒考慮資料,就想著直接維護區間的...
侯捷 C 標準11 14
本篇記錄學習 侯捷 c 標準11 14 一 演進 環境與資源 1 c 2.0的新特性,包括語言的部分和標準庫的部分。tr1是2003年的版本,即c 1.0。二 variadic templates 1 數量不定的模板引數,引數個數和引數型別都未定。三 spaces in template expre...
C語言程式設計(十一)11 14
8複習 陣列 通過下標,借助迴圈,處理批量同型別的資料 1 陣列定義 型別 陣列名 常量 說明 型別任意合法的型別,陣列元素的型別 陣列名,任意合法的識別符號,代表陣列的首位址,是乙個位址常量 常量,代表陣列元素的個數 int x x 6 int a x 錯誤,陣列大小不能是變數 2 陣列元素的引用...