信息学奥赛一本通 1115:直方图 | OpenJudge NOI 1.9 09
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1115:直方图 | OpenJudge NOI 1.9 09
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 1115:直方圖
OpenJudge NOI 1.9 09:直方圖
【題目考點】
1. 散列存儲
也叫哈希存儲。其思想為:將要存儲的值通過某種算法映射到存儲地址,映射算法為散列函數。在當前學習階段,存儲地址指的就是數組的下標。
例:統計一段由小寫字母組成的英文字符串中各字母出現的個數
- 設整型數組a保存各個字母出現的個數,字符c表示要統計的英文字符。
- 字符c的對應數組a的地址i,即字符c的個數由a[i]來統計。這里c與i的關系,即為散列函數,這里將散列函數設為:i = c - ‘a’,即a[c-‘a’]表示統計得到的字符c的個數。
2. 求最大值
【解題思路】
設整型數組a,a[i]表示數字i的個數。數組a要初始化為0,寫法為:int a[N] = {};,其中N要比要統計的最大數字更大。
【題解代碼】
解法1:
#include <bits/stdc++.h> using namespace std; int main() {int a[10005] = {}, n, num, fmax = 0;//a[i]表示數字i的個數,fmax:最大數字 cin>>n;for(int i = 0; i < n; ++i){cin>>num;a[num]++;if(num > fmax)fmax = num;}for(int i = 0; i <= fmax; ++i)cout<<a[i]<<endl;return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 1115:直方图 | OpenJudge NOI 1.9 09的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(2021:【例4.6】
- 下一篇: 信息学奥赛一本通 2007:【20CSP