Codeforces Round #157 (Div. 1) C. Little Elephant and LCM (数学、dp)_PHP教程
Codeforces Round #157 (Div. 1) C. Little Elephant and LCM (数学、dp)
C. Little Elephant and LCM time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard outputThe Little Elephant loves the LCM (least common multiple) operation of a non-empty set of positive integers. The result of the LCM operation of k positive integers x1,?x2,?...,?xk is the minimum positive integer that is divisible by each of numbers xi.
Let's assume that there is a sequence of integers b1,?b2,?...,?bn. Let's denote their LCMs as lcm(b1,?b2,?...,?bn) and the maximum of them as max(b1,?b2,?...,?bn). The Little Elephant considers a sequence b good, if lcm(b1,?b2,?...,?bn)?=?max(b1,?b2,?...,?bn).
The Little Elephant has a sequence of integers a1,?a2,?...,?an. Help him find the number of good sequences of integers b1,?b2,?...,?bn, such that for all i (1?≤?i?≤?n) the following condition fulfills: 1?≤?bi?≤?ai. As the answer can be rather large, print the remainder from dividing it by 1000000007 (109?+?7).
InputThe first line contains a single positive integer n (1?≤?n?≤?105) — the number of integers in the sequence a. The second line contains nspace-separated integers a1,?a2,?...,?an (1?≤?ai?≤?105) — sequence a.
OutputIn the single line print a single integer — the answer to the problem modulo 1000000007 (109?+?7).
Sample test(s)input
4 1 4 3 2
15
2 6 3
13
题意:
给你一个a序列,找出一个b序列,1?≤?bi?≤?ai,使得max(bi)=lcm(bi),问这样的bi序列有多少个。
思路:
先对a排序,枚举i=max(bi),对i因式分解,那么大于等于i的部分很好处理,直接pow_mod()相减,小于i的部分就任意取一个约束就够了。
代码:
<pre class="code">#include <iostream> #include<cstring> #include<cstdio> #include<string> #include<vector> #include #define INF 0x3f3f3f3f #define maxn 100005 #define mod 1000000007 typedef long long ll; using namespace std; int n; int a[maxn]; ll pow_mod(ll x,ll n) { ll res = 1; while(n) { if(n&1) res = res * x %mod; x = x * x %mod; n >>= 1; } return res; } void solve() { int i,j; ll ans=0,res; sort(a+1,a+n+1); for(i=1;i<=a[n];i++) // 枚举答案 { vector<int>fac; for(j=1;j*j<=i;j++) // factor { if(i%j==0) { fac.push_back(j); if(j*j!=i) fac.push_back(i/j); } } sort(fac.begin(),fac.end()); int pos,pre=1; res=1; for(j=1;j<fac.size();j++) { pos=lower_bound(a+1,a+n+1,fac[j])-a; res*=pow_mod(j,pos-pre); res%=mod; pre=pos; } ans+=res*((pow_mod(j,n-pre+1)-pow_mod(j-1,n-pre+1)+mod)%mod); ans%=mod; } printf("%I64d\n",ans); } int main() { int i,j; while(~scanf("%d",&n)) { for(i=1;i<=n;i++) { scanf("%d",&a[i]); } solve(); } return 0; }

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

AI,的確正在改變數學。最近,一直十分關注這個議題的陶哲軒,轉發了最近一期的《美國數學學會通報》(BulletinoftheAmericanMathematicalSociety)。圍繞著「機器會改變數學嗎?」這個話題,許多數學家發表了自己的觀點,全程火花四射,內容硬核,精彩紛呈。作者陣容強大,包括菲爾茲獎得主AkshayVenkatesh、華裔數學家鄭樂雋、紐大電腦科學家ErnestDavis等多位業界知名學者。 AI的世界已經發生了天翻地覆的變化,要知道,其中許多文章是在一年前提交的,而在這一

Aheptagonalnumberisanumberwhichcanberepresentedasaheptagon.Aheptagonisapolygonwith7sides.Aheptagonalnumbercanberepresentedasacombinationofsuccessivelayersofheptagon(7-sidedpolygon).Heptagonalnumbercanbebetterexpexpmedwiththebelowgures.第一個七邊形數是第一個七邊形數。因此,

計數,聽起來簡單,卻在實際執行上很困難。想像一下,你被送到一片原始熱帶雨林,進行野生動物普查。每當看到一隻動物,就拍一張照片。數位相機只是記錄追蹤動物總數,但你對獨特動物的數量感興趣,卻沒有統計。那麼,若想獲取這獨特動物數量,最好的方法是什麼?這時,你一定會說,從現在開始計數,最後再從照片中將每一種新物種與名單進行比較。然而,這種常見的計數方法,有時並不適用於高達數十億條目的資訊量。來自印度統計研究所、UNL、新加坡國立大學的電腦科學家提出了一種新演算法——CVM。它可以近似計算長列表中,不同條

一夕之間,機器學習範式要變天了!現今,統治深度學習領域的基礎架構是,多層感知器(MLP)-將活化函數放置在神經元上。那麼,除此之外,我們是否還有新的路線可走?就在今天,來自MIT、加州理工、東北大學等機構的團隊重磅發布了,全新的神經網路結構-Kolmogorov–ArnoldNetworks(KAN)。研究人員對MLP做了一個簡單的改變,即將可學習的活化函數從節點(神經元)移到邊(權重)上!論文地址:https://arxiv.org/pdf/2404.19756這個改變乍聽之下似乎毫無根據

視覺隨著人工智慧技術的發展,AI繪畫成為當下的熱門話題。透過使用深度學習演算法,人工智慧可以產生逼真的圖像,從而創造出驚人的藝術品。而這些驚人的作品背後,離不開數學知識的支持。數學模型在AI繪畫中扮演著至關重要的角色。一方面,數學模型被用來描述和表示圖像訊息,從而讓電腦能夠理解和處理圖像。另一方面,數學模型也被用來訓練深度學習模型,從而實現影像的自動生成。深度學習模型帶來高品質的圖像生成深度學習模型是AI繪畫中最核心的部分。它透過學習大量的影像資料來識別和模擬影像的特徵,透過多層次的資料處理

最近一段時間,AI 作畫可謂是火的一塌糊塗。在你驚嘆 AI 繪畫能力的同時,可能還不知道的是,擴散模型在其中扮演了重大角色。就拿熱門模型 OpenAI 的 DALL·E 2 來說,只要輸入簡單的文字(prompt),它就可以產生多張 1024*1024 的高清影像。在 DALL·E 2 公佈沒多久,谷歌隨後發布了 Imagen,這是一個文本到圖像的 AI 模型,它能夠通過給定的文本描述生成該場景下逼真的圖像。就在前幾天,Stability.Ai 公開發布文字生成圖像模型 Stable Diffusi

ChatGPT在產生隨機數字方面,也是玩明白了人類的套路。 ChatGPT可能是一位廢話藝術家、錯誤訊息的傳播者,但它不是「數學家」!近日,一位Meta的資料科學家Colin Fraser發現,ChatGPT並不能產生真正的隨機數,而更像是「人類的隨機數」。透過實驗,Fraser得出的結論是:「ChatGPT非常喜歡數字42和7。」網友表示,意味著人類非常喜歡這些數字。 ChatGPT也愛「宇宙終極答案」在他的測驗中,Fraser輸入的prompt如下:「Pick a random number

2022 年 10 月中旬,Justin Gilmer 從加州飛往紐約,在東海岸拜訪了他以前的導師 Michael Saks,一位羅格斯大學的數學家。敘舊期間,他們並未談到數學。事實上,自從 2015 年在羅格斯大學獲得博士學位後,Gilmer 就再也沒認真思考過數學問題。那時候他決定不在學術界發展,同時開始自學程式設計。當他和 Saks 共同用餐時,Gilmer 向導師講述了他在谷歌的工作:機器學習和人工智慧。在校園的小路上,Gilmer 邊走邊回憶,2013 年,他花了一年多的時間走在這條
