Codeforces 1114C 數論 唯一分解

2022-05-20 16:35:07 字數 678 閱讀 8249

解題思路: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 陣列元素的引用...