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 ...