SWUST OJ 1036 尋找整數序列的主元素

2021-10-04 19:09:57 字數 833 閱讀 6986

題目描述

已知乙個整數序列a=(a0,a1,…an),如果其中有乙個元素的出現次數超過n/2,就稱該元素為a的主元素,否則就稱整數序列沒有主元素。例如a=(0,5,5,3,5,7,5,5),則5為主元素。a=(0,5,5,3,5,1,5,7),則a中沒有主元素。要求編寫程式實現尋找給定整數序列的主元素,如果找到,則輸出主元素。如果沒有找到,則輸出**-1。

輸入**

第一行為整數序列的個數n

第二行為乙個整數序列。

輸出

如果找到主元素,輸出主元素的值,否則輸出-1。

樣例輸入8

0 5 5 3 5 7 5 5

樣例輸出

思路:定義兩個陣列,分別用來儲存輸入的資料和資料出現最多的次數(如果有的話),然後再用乙個標記變數來記錄出現次數最多資料元素,再將其輸出即可

#include

#include

using

namespace std;

int n;

int flag=0;

int str[

999]

;int ans[

1000]=

;int

main()

for(

int i=

0;ifor(

int i=

0;i(flag!=0)

cout<;else

cout<<

"-1"

;return0;

}

1777 尋找整數

1777 尋找整數 時間限制 1000 ms 記憶體限制 262144 kb 題目描述 給定整數m,k,求出正整數n使得n 1,n 2,2n 中恰好有m個數在二進位制下恰好有k個1。有多組資料。輸入 第一行乙個整數 t表示資料組數。接下來 t 行每行兩個整數m,k。輸出 每組資料輸出一行兩個整數,第...

OJ 1036 正整數序列

描述 給定正整數n,你的任務是用最少的運算元把序列1,2,3,n 1,n都變成0.每次操作可從序列中選擇乙個或多個整數,同時減去乙個相同的正整數.比如1,2,3可以把2,3同時減去2,變成1,0,1.輸入多組測試資料,每組僅一行,為正整數n.1 n 10 9 輸出對於每組資料輸出最少的操作次數 輸入...

尋找符合條件的整數

題目 任意給定乙個正整數n,求乙個最小的正整數m m 1 使得n m的十進位制表示形式裡只含有1和0.解決這個問題首先考慮對於任意的n,是否這樣的m一定存在。可以證明,m是一定存在的,而且不唯一。簡單證明 因為 這是乙個無窮數列,但是數列中的每一項取值範圍都在 0,n 1 之間。所以這個無窮數列中間...