作业介绍

计数思想

这类题目是使用数组记录某些数字的出现情况,我们把它叫桶。

例如在 数字的出现次数 一题中,虽然 n104n\leq 10^4 但是我们只需统计 0ai90\leq a_i\leq 91010 个数字的出现次数。因此桶的大小设定为 int a[10] 就完全够用了。

每次输入一个数字 xx 相当于在这个桶里写 “正”字。

for (int i = 1; i <= n; i++)
{
     cin >> x;
     a[x]++;
}

最后求每个数字的出现次数,就是输出 090\sim 91010 个桶的大小。

for (int i = 0; i <= 9; i++)
{
     cout << a[i] << " ";
}

并且由于初始每个桶内还未记录,所以需要初始化为 00,因此我们将数组设置为全局变量方便初始化。

这类思想不仅仅是记录数字的出现次数,例如在 [NOIP2005 普及组] 校门外的树 中,我们使用一个大小为 1000110001 的桶,来记录 0l0\sim l 这些位置是否还存在树。

若第 ii 个位置存在数,则 ai=1a_i=1

否则 ai=0a_i=0

这都是计数思想的体现。

题目

认领作业后才可以查看作业内容。
状态
正在进行…
题目
4
开始时间
2024-1-21 0:00
截止时间
2034-1-21 23:59
可延期
24 小时