(file io): input:polo.in output:polo.out
時間限制: 1000 ms 空間限制: 128000 kb 具體限制
goto problemset
題目描述
在解決了馬語翻譯問題後,馬匹數量越來越多,不少鄉鎮都有了數量可觀的馬匹,開始出現馬球比賽。鄉鎮之間決定進行馬球聯賽。
聯賽的賽制,主要是比賽雙方的馬匹數量,成了乙個急需解決的問題。首先,所有鄉鎮都要求,本鄉鎮所有的馬匹都必須參賽,或者都不參賽(若組隊的馬匹數量不是該鎮馬匹數量的約數,將無法參賽)。其次,在本鄉鎮,選出最佳球隊,參加鄉鎮間聯賽。
現在,比賽組織方希望滿足所有參賽鄉鎮的要求,並且使得決賽的馬匹盡可能多,請你設計每個球隊馬匹的數量,使得決賽馬匹數最大。注意,決賽至少有 2
22個隊伍晉級。
輸入
第一行乙個整數 n
nn,表示想要報名參賽的鄉鎮。
接下來 n
nn 個用空格分開的整數a(i
)a(i)
a(i)
,表示第 i
ii 個鄉鎮報名參賽的馬匹數。
輸出
計算出決賽最大參與的馬匹數。
樣例輸入
【輸入樣例 1】
3 1 3 6
【輸入樣例 2】
5 4 6 3 8 9
樣例輸出
【輸出樣例 1】
6【樣例解釋】 每個隊伍 3
33 匹馬,鄉鎮 1
11 無法參賽。鄉鎮 2
22 和 3
33 都可以進行比賽,決賽 2
22 個隊伍,共 6
66匹馬。
【輸出樣例 2】
9【樣例解釋】 每個隊伍 3
33匹馬,鄉鎮 2,3
,5
2,3,5
2,3,
5 可以參賽。決賽 3
33 個隊伍, 9
99 匹馬。
資料範圍限制
20
2020
%的資料 2
<=n
<
=100
2<=n<=100
2<=n
<=1
00, 1
<=a
(i
)<
=10000
1<=a(i)<=10000
1<=a
(i)<=1
0000
。5050
50%的資料 2
<=n
<
=20000
2<=n<=20000
2<=n
<=2
0000
。100
10010
0%的資料 2
<=n
<
=200000
2<=n<=200000
2<=n
<=2
0000
0, 1
<=a
(i
)<
=2000000
1<=a(i)<= 2000000
1<=a
(i)<=2
0000
00。解題思路
列舉每乙個點為交點的情況,然後分成四部分:
左上部分,右上部分,左下部分,右下部分
然後列舉左上部分的全部可能出現的數塞進hash表中,並記錄出現次數, 然後列舉其對應的右下部分出現的全部可能,然後在hash表中找。
右上,左下部分同理 。。。
不過要注意hash表的清空,每次找到乙個數,要把這個數的hash表位置記錄,然後清零的時候就不用清全部hash表,只需要清空使用過的位置,就可以達到優化,避免超時。
當然,這題資料小,開個大陣列做桶去記錄也可以水掉。
**
#include
#include
#include
#include
#include
#include
using namespace std;
long long a[60]
[60],v[
5000010
],q[
5000010];
long long bsy,ans,n,t;
int main()
for(int i=
1;ifor(int r=i+
1;r<=n;r++)}
while
(t) v[q[
--t]]=
0;for(int r=i+
1;r<=n;r++)}
for(int r=
1;r<=i;r++)}
while
(t) v[q[
--t]]=
0;}}
printf
("%lld\n"
,ans)
;}
jzoj1965 遞推 普組模擬賽 馬球比賽
題目描述 在解決了馬語翻譯問題後,馬匹數量越來越多,不少鄉鎮都有了數量可觀的馬匹,開始出現馬球比賽。鄉鎮之間決定進行馬球聯賽。聯賽的賽制,主要是比賽雙方的馬匹數量,成了乙個急需解決的問題。首先,所有鄉鎮都要求,本鄉鎮所有的馬匹都必須參賽,或者都不參賽 若組隊的馬匹數量不是該鎮馬匹數量的約數,將無法參...
普組模擬賽 馬農
普組模擬賽 馬農 題目 在 完戰馬檢閱之後,來自大草原的兩兄弟決心成為超級 馬農 專門飼養戰馬。兄弟兩回到草原,將可以養馬的區域,分為 n n 的單位面積的正方形,並實地進行考察,歸納出了每個單位面積可以養馬所獲得的收益。接下來就要開始規劃他們各自的馬場了。首先,兩人的馬場都必須是矩形區域。同時,為...
普組模擬賽 馬語翻譯
普組模擬賽 馬語翻譯 題目 隨著馬場的繁榮,出現了越來越多的新馬種。種族之間的溝通不暢嚴重影響了馬場的和諧。這時,科學家發明了馬語翻譯機械人,正好可以解決這一難題。機械人有 m 種,每種機械人能完成 k 個馬種之間的語言翻譯。問,利用這些機械人,能否實現 1 種群和 n 種群的馬語翻譯。若可以,找到...