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