5 11返校測試T2

2022-05-16 10:57:30 字數 855 閱讀 5824

有k(k第一行乙個整數n。

第二行有n個正整數,每個數字代表一張選票所選的人的編號。

每行乙個正整數,為優勝者的編號,由小到大。

如果沒人獲勝,則輸出「no such person.」。

8

5 2 3 6 2 5 2 7

2
優勝者為2號。

下面是這個題的思路qwq

將所有的選票進行從小到大排序(快排解決),然後將陣列進行掃瞄,如果陣列前後兩個數不同(或第乙個數),將該選手的號碼進行記錄,並將該選手的票數+1,如果陣列中前後兩數重複,即有很多人投此選手,將該選手的票數+1。

掃瞄完畢後,所有被pick的選手及其選票就會一一對應。

然後掃瞄一遍新的陣列(存選票數量的陣列),如果有選手所得票數超過了投票人數的1/4,即該選手為優勝者,輸出對應選手的號碼。如果沒有優勝者,輸出no such person.

#include#include#includeusing namespace std;

long long n,a[10005],b[10005]={},c[10005];

/*a陣列用於儲存全部的選票,b陣列用於儲存有選票選手的選票數,c陣列用於儲存有選票選手的編號*/

bool flag=0;//判斷有無優勝者

int main()

if(a[i]==a[i-1])//前後兩數相同的情況

} for(int i=1;i<=j;i++) }

if(flag==0) //沒有優勝者的情況

cout<<"no such person."

}

2018 10 27測試T2 洗衣服

傳送門 一道貪心題,但考場上沒貪出來 維護兩個堆,分別存洗衣服和烘乾衣服的時間 每次加進來一件衣服,就在之前最早結束的那一台機器裡操作,這樣會是最優的 洗衣服和烘乾衣服都這樣搞,最後再用最大配最小的原則求最大值就行了 include include include include define n ...

2018 11 02測試T2 飛越行星帶

傳送門 這道題比較妙啊 把每個行星看成乙個點 把 x xx 軸和 y l y ly l 看成兩個特殊的點 把行星之間的距離看做邊 每個點與 x xx 軸的邊為 y iy i yi 與 y l y ly l 的邊為 l y il y i l yi 從小到達加邊,如果發現 x xx 軸和 y l y l...

2019 08 24測試 T2 數學課

傳送門 給定乙個包含 n nn 個元素的集合 p p p 求有多少個集合 a p a pa p,滿足任意 x a x ax a 有 2x a2x a 2x a 且對於 a aa 在 p pp 中的補集 b bb,也滿足任意 x b x bx b 有 2x b2x b 2x b 有 q qq 個詢問,...