天天看點

【哈希映射】HDU-1280 前m大的數注解代碼結果

【哈希映射】HDU-1280 前m大的數注解代碼結果
【哈希映射】HDU-1280 前m大的數注解代碼結果

注解

1、簡單的哈希映射,把sum映射到對應位置。

代碼

#include <iostream>
#include <cstring>

using namespace std;

const int MAXN = 10001;

int main() {

    int N, M;
    while(~scanf("%d %d", &N, &M)) {
        int a[N];
        int sum[MAXN];
        memset(sum, 0, sizeof(sum));
        for(int i=0; i<N; i++) {
            scanf("%d", &a[i]);
        }
        for(int i=0; i<N-1; i++) {
            for(int j=i+1; j<N; j++) {
                sum[a[i]+a[j]]++;
            }
        }
        for(int i=MAXN-1; i>=0; i--) {
            if(M>1 && sum[i]>0) {
                printf("%d ", i);
                sum[i]--;
                i++;
                M--;
            } else if(sum[i]>0) {
                printf("%d", i);
                break;
            }
        }
        printf("\n");
    }

    return 0;
}
           

結果

【哈希映射】HDU-1280 前m大的數注解代碼結果