24h購物| | PChome| 登入
2012-10-25 08:39:44| 人氣1,108| 回應0 | 上一篇 | 下一篇

[ZJ][bitset] a561. 內存不足

推薦 0 收藏 0 轉貼0 訂閱站台

內容 :

Background

內存不足的情況下,請使用排序法。

The Problem

給定一個 n 小於一千萬,每個非負數字不重複且都小一千萬,求其排序後的結果。

輸入說明 :

請參考 Sample Input。

輸出說明 :

只會有一組測資,請只輸出 index 可以被 10 整除的數字即可。

意即 if(index mod 10 == 0) printf("%d", A[index]);

範例輸入 :

30
10 1 9 26 14 5 2 7 25 17 27 11 4 13 15 0 3 16 12 19 20 18 6 23 24 21 22 8 28 29 

範例輸出 :

0 10 20 

提示 :

出處 :

(管理:morris1028)




#include <stdio.h>
#define maxL (10000000>>5)+1
#define GET(x) (mark[x>>5]>>(x&31)&1)
#define SET(x) (mark[x>>5] |= 1<<(x&31))
int mark[maxL];
int main() {
    int n, i, j, x;
    scanf("%d", &n);
    for(i = 0; i < n; i++)
        scanf("%d", &x), SET(x);
    for(i = 0, j = 0; i < 10000000; i++) {
        if(GET(i)) {
            if(j == 0) printf("%d ", i);
            j++;
            if(j >= 10)  j = 0;
        }
    }
    return 0;
}

台長: Morris
人氣(1,108) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: ZeroJudge |
此分類下一篇:[ZJ][dp] a564. ITSA201205 P4 Group without direct leaders
此分類上一篇:[ZJ][逆元] a545. Stressful

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文