洛谷 P1414 又是畢業季II

2021-07-22 15:30:58 字數 1205 閱讀 6505

題目背景

「叮鈴鈴鈴」,隨著高考最後一科結考鈴聲的敲響,三年青春時光頓時凝固於此刻。畢業的欣喜怎敵那離別的不捨,憧憬著未來仍毋忘逝去的歌。1000多個日夜的歡笑和淚水,全凝聚在畢業晚會上,相信,這一定是一生最難忘的時刻!

題目描述

彩排了一次,老師不太滿意。當然啦,取每位同學的號數來找最大公約數顯然不太合理。於是老師給每位同學評了乙個能力值。於是現在問題變為,從n個學生中挑出k個人使得他們的默契程度(即能力值的最大公約數)最大。但因為節目太多了,而且每個節目需要的人數又不知道。老師想要知道所有情況下能達到的最大默契程度是多少。這下子更麻煩了,還是交給你吧~

ps:乙個數的最大公約數即本身。

輸入輸出格式

輸入格式:

第一行乙個正整數n。

第二行為n個空格隔開的正整數,表示每個學生的能力值。

輸出格式:

總共n行,第i行為k=i情況下的最大默契程度。

輸入輸出樣例

輸入樣例#1:

4 1 2 3 4

輸出樣例#1:

4 2 1 1

說明【題目**】

lzn原創

【資料範圍】

記輸入資料中能力值的最大值為inf。

對於20%的資料,n<=5,inf<=1000

對於另30%的資料,n<=100,inf<=10

對於100%的資料,n<=10000,inf<=1e6

【分析】

還算一道比較水的題,關鍵是思路。

根據資料範圍,對每乙個數進行處理,找到該數的所有因子並將因子出現次數++。最後從大往小掃,如果該數出現次數》=k,輸出,並將上界下調至該數。

【**】

//洛谷 p1414 又是畢業季ii 

#include

#include

#include

#include

#define fo(i,j,k) for(i=j;i<=k;i++)

using

namespace

std;

int n,m;

int num[1000001],a[10001];

int main()

fo(i,1,n)

fo(j,1,sqrt(a[i]))

if(a[i]%j==0)

fo(k,1,n)

}return

0;}

又是畢業季II 洛谷p1414

叮鈴鈴鈴 隨著高考最後一科結考鈴聲的敲響,三年青春時光頓時凝固於此刻。畢業的欣喜怎敵那離別的不捨,憧憬著未來仍毋忘逝去的歌。1000多個日夜的歡笑和淚水,全凝聚在畢業晚會上,相信,這一定是一生最難忘的時刻!彩排了一次,老師不太滿意。當然啦,取每位同學的號數來找最大公約數顯然不太合理。於是老師給每位同...

洛谷 P1414 又是畢業季II

老師給每位同學評了乙個能力值。於是現在問題變為,從n個學生中挑出k個人使得他們的默契程度 即能力值的最大公約數 最大。但因為節目太多了,而且每個節目需要的人數又不知道。老師想要知道所有情況下能達到的最大默契程度是多少。這下子更麻煩了,還是交給你吧 ps 乙個數的最大公約數即本身。輸入格式 第一行乙個...

洛谷P1414 又是畢業季II

我真傻,真的。這麼簡單的題都想了半天 其實挺簡單的。暴力記錄每乙個約數出現的個數。然後考慮輸出答案。可以想到,答案是逐漸變小的,而每個約數出現次數隨著其增長而減小。於是可以用一些玄學技巧來找出答案。include include include include using namespace std...