题解:P2550 [AHOI2001] 彩票摇奖

· · 题解

数组入门题。给出彩票的中奖号码和 n 张彩票的号码,求各个奖项的获奖次数。特等奖是要求彩票上 7 个号码出现在中奖号码中,一等奖是 6 个,以此类推,六等奖是 1 个。

可以开一个数组存放中奖号码,然后依次读入 n 张彩票的号码,每读入一个号码就判断是否与中奖号码之一相等,读入完 7 个号码后就把相等的数量累加到答案数组里,最后输出答案即可。

#include<bits/stdc++.h>
using namespace std;
int zhong[11],ans[11];
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=7;i++)cin>>zhong[i];
    for(int i=1;i<=n;i++){
        int d=0;
        for(int j=1;j<=7;j++){
            int x;
            cin>>x;
            for(int k=1;k<=7;k++){
                if(x==zhong[k]){
                    d++;
                    break;
                }
            }
        }
        ans[d]++;
    }
    for(int i=7;i>=1;i--)cout<<ans[i]<<' ';
}