又是畢業季1 又是畢業季2

2022-05-18 05:22:30 字數 306 閱讀 7027

又是畢業季2

n/k;

又是畢業季2

一開始很容易想到列舉n個數取k個的所有組合,然後分別用輾轉相除法求最大公約數,但是複雜度明顯不符合要求,於是必須換一種思路。

我們想到,k個數的公約數含義就是這k個數均含有某個因數,如果我們把所有數的因數全部求出來,發現有k個數均含有某個因數,那麼這個數必然是這k個數的公約數。其中找出最大的就是它們的最大公約數。但是要如何高效的做到這點呢?考慮到對於k=1,2……,n都要求出,我們可以這麼做:

演算法複雜度o(n*sqrt(inf))。

數論 又是畢業季I 又是畢業季II

題目簡化 為了把畢業晚會辦得更好,老師想要挑出默契程度最大的 k 個人參與畢業晚會彩排。可是如何挑呢?老師列出全班同學的號數 1,2,n 並且相信 k 個人的默契程度便是他們的最大公約數 這不是迷信哦 這可難為了他,請你幫幫忙吧!輸入格式 兩個空格分開的正整數n和k。n k 1 k 1e9,n 1e...

又是畢業季I

對於答案a,k a是最接近 n的,即 a n k 下取整 所以直接輸 n k即可。我的方法是 二分查詢 n k真的沒有想到唉。我找的最大公約數,如果當前的mid對應的個數比k大,就往大了找,否則往小裡找,對於邊界問題,要加一些特判。includeusing namespace std intn,k ...

P1414 又是畢業季

luogu 傳送門 我們列舉1 maxn每個數 i 求出它的倍數的個數cnt,那麼cnt就是以 i 為最大公約數時數的個數,那麼 i 就可能作為從1 cnt 的答案,對ans取max就可以了。include include include include include include includ...