計蒜客藍橋杯模擬賽 輕重搭配 貪心

2022-09-10 16:12:20 字數 711 閱讀 1598

n 個同學去動物園參觀,原本每人都需要買一張門票,但售票處推出了乙個優惠活動,乙個體重為 x 的人可以和體重至少為 2x 配對,這樣兩人只需買一張票。現在給出了 n個人的體重,請你計算他們最少需要買幾張門票?

第一行乙個整數 n,表示人數。

第二行 n 個整數,每個整數 ai​表示每個人的體重。

乙個整數,表示最少需要購買的門票數目。

對於 30% 的資料:1 ≤n≤25,1≤ai​≤100。

對於 60% 的資料:1 ≤n≤10000,1≤ai​≤1000。

對於 100% 的資料:1 ≤n≤5⋅10^5,1≤ai​≤10^5。

1 和 9 配對,7 和 3 配對,剩下 5,5 單獨,一共買四張票。

1 9 7 3 5 5

2019 藍橋杯省賽 b 組模擬賽(一)

輸入後先排序,最少的情況就是全部可以配對,那只能排序後的前一半和後一半配對,所以直接從中間開始列舉就可以。

#include using namespace std;

int a[500010],cnt;

int main()

sort(a, a + n);

int l = n/2-1,r=n-1;

while(l>=0)

else

l--;

}cout << cnt << "\n";

return 0;

}

計蒜客藍橋杯模擬賽心得

1.有趣的數字 我們稱乙個數是質數,而且數字 現了 55 的數字是有趣的。例如 5,59,457 都是有趣的,而 15,7 不是。求 1 到 100000 中有趣的數的個數。思路 其實很簡單,1 判斷是否為素數 2 位數是否含有5 注意點 剛開始以為要總數減去1,就是15這個數,後來才發現15不是素...

計蒜客藍橋杯省賽模擬五

a.了解進製轉換原理 b.熟練掌握求數字中各個位置數的方法 includeusing namespace std int check int a return re int main void printf lld n ans return 0 c.做法一 費馬小定理的運用,若a和b互質,則a的 b...

2019計蒜客藍橋杯模擬賽三

思路 一開始遞推推錯了,改用dfs includeusing namespace std int ans void dfs int x,int sum 記住i從x開始搜的這一剪枝,不僅僅可以提公升效率 更重要的是可以保證搜尋出來的結果不會重複,是有序的 for int i x i 10 sum i ...