这是一道入门题目,最近很闲很闲时不知道干什么了,就突然就冒出来了想在csdn上面更新一些算法题的想法😱
后续我会出一些我觉得洛谷上面我觉得一些比较有意思的题目,应该是会按照洛谷的题单来进行的,由浅入深,喜欢大家能够批评指正
这道题其实借助了数组延伸的一个算法---桶计法。
当然,名字只是代号,重要的是其中的思想
我来粗浅的给大家理一下我对这个算法的理解,说白了就是利用数组的下标,每个下标就是一个桶,里面装的东西就是数据的大小或者说多少
我一直觉得想让别人懂就得代码与注释结合
所以没有理解的小伙伴可以大概看一下原理,然后结合代码与注释来理解题目
#include<iostream> //标准输入输出
using namespace std; //标准命名空间
int f[33],p[10],n,m;//相当于两个桶 p装的是几等奖的数量 f装为是否中奖号码 1为中奖 0为未中奖
int main()
{
cin>>n;
for(int i=0;i<7;i++)
{
cin>>m;
f[m]=1; //1为中奖 与后面的if结合着来看
}
for(int i=1;i<=n;i++)
{
int sum=0;//中奖号码数量
for(int j=1;j<=7;j++)
{
cin>>m;
if(f[m]==1)sum++;//与前面的f[m]=1对应
}
p[sum]++;//sum的对应数就为装着几等奖的桶,也就是下标
}
for(int i=7;i>=1;i--)cout<<p[i]<<' ';//愉快输出
return 0;
}
结合着慢慢来看,不懂的可以来私信我,但是要关注哦,不关注的不要来问我😜😜
第一次更新,望批评改正,什么问题都可以提出哦