九度OJ 1402 特殊的數 位操作

2022-07-27 22:09:20 字數 1214 閱讀 5490

題目描述:現在有n個數,其中有一些出現了一次,一些出現了兩次,一些出現了很多次。現在要求你找出那些只出現一次的數,並按公升序輸出。

輸入:本題有多組case。

每個case有兩行,第一行輸入乙個n,表示有n個數,1<= n <= 1000000。

第二行有n個數字。每個數字的大小範圍[1, 1000000]。

輸出:每次輸出有兩行。

第一行輸出乙個整數,表示出現一次的數的個數。

第二行按公升序輸出出現次數為一次的數字,兩個數字之間用空格隔開。

樣例輸入:

5

1 2 2 3 3

71 2 2 3 4 4 2

22 2

樣例輸出:

112

1 30

#include #include #define max 1000001

char input[max];

int main(void)

else if (input[data] == 1)

}cnt = 0;

for (i = 1; i < max; ++i)

if (input[i] == 1)

++cnt;

printf("%d\n", cnt);

i = 0;

while (i < max && cnt != 0)

++i;}}

return 0;

}

位操作

#include #include #define max 125010

unsigned char input[max];//標記數字是否出現過

unsigned char num[max];//標記數字是否只出現過一次

int main(void)

else if ((num[index] & (1 << bit)) == 0)

} cnt = 0;

for (i = 1; i <= 1000000; ++i)

printf("%d\n", cnt);

i = 1;

while (i <= 1000000 && cnt != 0)

++i;

} }return 0;

}

特殊的數 九度oj(1402)

昨晚搞了個acm題,當時沒考慮到記憶體限制,用了int陣列,然後鍊錶動態分配的方法,結果記憶體不夠無法ac,今天考慮了一下,用陣列唯一性的原理就可以實現了。難點在於用char陣列儲存資料,可以節約記憶體空間。題目描述 現在有n個數,其中有一些出現了一次,一些出現了兩次,一些出現了很多次。現在要求你找...

特殊的數 九度oj(1402)

昨晚搞了個acm題,當時沒考慮到記憶體限制,用了int陣列,然後鍊錶動態分配的方法,結果記憶體不夠無法ac,今天考慮了一下,用陣列唯一性的原理就可以實現了。難點在於用char陣列儲存資料,可以節約記憶體空間。題目描述 現在有n個數,其中有一些出現了一次,一些出現了兩次,一些出現了很多次。現在要求你找...

九度oj 題目1185 特殊排序

題目描述 輸入一系列整數,將其中最大的數挑出,並將剩下的數進行排序。輸入 輸入第一行包括1個整數n,1 n 1000,代表輸入資料的個數。接下來的一行有n個整數。輸出 可能有多組測試資料,對於每組資料,第一行輸出乙個整數,代表n個整數中的最大值,並將此值從陣列中去除,將剩下的數進行排序。第二行將排序...