程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU5038-Grade

HDU5038-Grade

編輯:C++入門知識

HDU5038-Grade


 

 

題意:用給出的公式求出每個格子蘑菇的數值,求出現頻率最多的數值,如果存在出現頻率一樣的話並且還存在其他頻率,輸出頻率最多且一樣的數值,按升序,但要注意有且出現只有一種數值時,輸出這種數值。

思路:簡單模擬

代碼:

#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int MAXN = 1e6;

int vis[MAXN];
int n;    

int main() {
    int cas, t = 1;
    scanf(%d, &cas);
    while (cas--) {
        int n;    
        scanf(%d, &n);
        memset(vis, 0, sizeof(vis));

        int a, max = 0, cnt = 0, num = 0; 
        for (int i = 0; i < n; i++) {
            scanf(%d, &a);
            a = 10000 - pow((100 - a), 2);
            if (!vis[a]) cnt++;
            if (max < a) max = a;
            vis[a]++; 
            if (num < vis[a]) num = vis[a];
        }

        printf(Case #%d:
, t++);
        if (cnt * num == n && cnt > 1) {
            printf(Bad Mushroom
);  
            continue;
        }

        int flag = 1;
        for (int i = 0; i <= max; i++) {
            if (vis[i] == num) {
                if (flag) {
                    printf(%d, i);
                    flag = 0;
                }
                else
                    printf( %d, i);
            }
        } 
        printf(
); 
    }
    return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved