Ajax請求傳遞data資料三種格式:
阿新 • • 發佈:2020-07-14
題目描述
時限: 記憶體:
衡中活動很多,人也很多,一次活動有 個學生參與投票,現已知一名參賽選手票數超過半數,求其參賽號(參賽號隨機,) 。
輸入格式
- 第一行一個整數 。
- 第二行 個整數 代表第 個學生所投選手的參賽號。
輸出格式
超過半數選手的參賽號。
樣例
樣例輸入
10
5 1 2 5 5 2 3 5 5 5
樣例輸出
5
資料範圍與提示
的資料滿足:;
題解
- 陣列,肯定不行,直接炸,只能通過其他方法求解。
- 那麼只能用思維來做了,我用的方法是隻求已知數列中的半數,
- 如果前面的數和他不同,那麼就cnt--,直到為0時他肯定沒超過半數,就相當於抵消了,
- 如果前面的數與他相同,那麼cnt++,計算個數,
- 如果cnt==0,那麼說明此時前面沒有超過半數的數字,
- 最後出來的就是超過半數的數字。
code
#include <cstdio> int ans, cnt, x, y; int main() { scanf("%d", &x); while (x--) { scanf("%d", &y); if (cnt == 0) ans = y, cnt++; else if (ans == y) cnt++; else cnt--; } printf("%d", ans); }