jzoj1965 遞推 普組模擬賽 馬球比賽

2021-10-02 17:05:26 字數 1659 閱讀 1774

題目描述

在解決了馬語翻譯問題後,馬匹數量越來越多,不少鄉鎮都有了數量可觀的馬匹,開始出現馬球比賽。鄉鎮之間決定進行馬球聯賽。

聯賽的賽制,主要是比賽雙方的馬匹數量,成了乙個急需解決的問題。首先,所有鄉鎮都要求,本鄉鎮所有的馬匹都必須參賽,或者都不參賽(若組隊的馬匹數量不是該鎮馬匹數量的約數,將無法參賽)。其次,在本鄉鎮,選出最佳球隊,參加鄉鎮間聯賽。

現在,比賽組織方希望滿足所有參賽鄉鎮的要求,並且使得決賽的馬匹盡可能多,請你設計每個球隊馬匹的數量,使得決賽馬匹數最大。注意,決賽至少有 2 個隊伍晉級。

輸入

第一行乙個整數 n,表示想要報名參賽的鄉鎮。

接下來 n 個用空格分開的整數 a(i),表示第 i 個鄉鎮報名參賽的馬匹數。

輸出

計算出決賽最大參與的馬匹數。

樣例輸入

【輸入樣例 1】

3 1 3 6
【輸入樣例 2】

5 4 6 3 8 9
樣例輸出

【輸出樣例 1】

6
【樣例解釋】

每個隊伍 3 匹馬,鄉鎮 1 無法參賽。鄉鎮 2 和 3 都可以進行比賽,決賽 2 個隊伍,共 6匹馬。

【輸出樣例 2】

9//
【樣例解釋】

每個隊伍 3 匹馬,鄉鎮 2,3,5 可以參賽。決賽 3 個隊伍, 9 匹馬。

資料範圍限制

【資料範圍】

20%的資料 2<=n<=100, 1<=a(i)<=10000。

50%的資料 2<=n<=20000。

100%的資料 2<=n<=200000, 1<=a(i)<= 2000000。

解題思路

題目大意:求出max的公約數*隊伍數(隊伍馬匹是這個公約數的倍數)

設f [i

]f[i]

f[i]

是有f [i

]f[i]

f[i]

個隊伍是i

ii的倍數

#include

#include

#include

using namespace std;

long long n,x,f[

2000200

],maxn,maxx;

//記得開long long

int main()

for(int i=

1;i<=maxn;i++)//

if(f[i]

)//如果i有可能是答案

for(int j=

2;j*j<=i;j++)}

for(int i=

1;i<=maxn;i++)if

(f[i]

>=

2&&f[i]

*i>maxx)

//如果兩個隊伍滿足

maxx=f[i]

*i;//求乙個最大的

printf

("%lld"

,maxx)

;}

(紀中)1965 普組模擬賽 馬球比賽 數學

file io input polo.in output polo.out 時間限制 1000 ms 空間限制 128000 kb 具體限制 goto problemset 題目描述 在解決了馬語翻譯問題後,馬匹數量越來越多,不少鄉鎮都有了數量可觀的馬匹,開始出現馬球比賽。鄉鎮之間決定進行馬球聯賽。...

普組模擬賽 馬農

普組模擬賽 馬農 題目 在 完戰馬檢閱之後,來自大草原的兩兄弟決心成為超級 馬農 專門飼養戰馬。兄弟兩回到草原,將可以養馬的區域,分為 n n 的單位面積的正方形,並實地進行考察,歸納出了每個單位面積可以養馬所獲得的收益。接下來就要開始規劃他們各自的馬場了。首先,兩人的馬場都必須是矩形區域。同時,為...

普組模擬賽 馬語翻譯

普組模擬賽 馬語翻譯 題目 隨著馬場的繁榮,出現了越來越多的新馬種。種族之間的溝通不暢嚴重影響了馬場的和諧。這時,科學家發明了馬語翻譯機械人,正好可以解決這一難題。機械人有 m 種,每種機械人能完成 k 個馬種之間的語言翻譯。問,利用這些機械人,能否實現 1 種群和 n 種群的馬語翻譯。若可以,找到...