數論題,主要在於推演。
洛谷的《又是畢業季i》更好玩
發現對於所有的同學的能力值,只要我們選出每個數的所有因子並記錄所有同學所有因子出現的次數,就可以得到乙個c陣列為所有因子出現的次數。
因為讓輸出1-n所有的值,而且因子數c[k-1]>=c[k],我們就一定可以從因子數最高的c向下遍歷到c[i]更高的位置,即最大公約數i向下遞減,當第一次發現c[i]>=i,那麼就肯定存在》=i個數的因子是i,符合題意。
數論真有意思。
#include#include#include
using
namespace
std;
int c[1000005
],n;
intmain()
}for(int i=1;i<=n;i++)
return0;
}
P1414 又是畢業季II
又是畢業季ii 給定 n 和序列 a 1 dots a n 求 k 個數的公約數的最大值,其中 1 leq k leq n 簽到好題。對於每個數進行因數分解,記錄下每個因數出現的數量。設 f x 表示因數 x 出現的次數,那麼對於 k 我們便需要找到 f x geq k 並且 x 盡量大。那麼直接從...
P1414 又是畢業季
luogu 傳送門 我們列舉1 maxn每個數 i 求出它的倍數的個數cnt,那麼cnt就是以 i 為最大公約數時數的個數,那麼 i 就可能作為從1 cnt 的答案,對ans取max就可以了。include include include include include include includ...
洛谷 P1414 又是畢業季II
題目背景 叮鈴鈴鈴 隨著高考最後一科結考鈴聲的敲響,三年青春時光頓時凝固於此刻。畢業的欣喜怎敵那離別的不捨,憧憬著未來仍毋忘逝去的歌。1000多個日夜的歡笑和淚水,全凝聚在畢業晚會上,相信,這一定是一生最難忘的時刻!題目描述 彩排了一次,老師不太滿意。當然啦,取每位同學的號數來找最大公約數顯然不太合...