蓝桥杯 ADV-133 算法提高 彩票

栏目: 编程工具 · 发布时间: 6年前

内容简介:问题描述输入格式第一行一个正整数n,表示彩票数量,第二行7个整数,表示中奖号码,下面n行每行7个整数,描述n张彩票。

问题描述

为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下:

1、每张彩票上印有7个各不相同的号码,且这些号码的取值范围为[1, 33];

2、每次在兑奖前都会公布一个由七个互不相同的号码构成的中奖号码;

3、共设置7个奖项,特等奖和一等奖至六等奖。兑奖规则如下:

特等奖:要求彩票上的7个号码都出现在中奖号码中;

一等奖:要求彩票上的6个号码出现在中奖号码中;

二等奖:要求彩票上的5个号码出现在中奖号码中;

……

六等奖:要求彩票上的1个号码出现在中奖号码中;

注:不考虑号码出现的顺序,例如若中奖号码为23 31 1 14 19 17 18,则彩票12 8 9 23 1 16 7由于其中有两个号码(23和1)出现在中奖号码中,所以该彩票中了五等奖。

输入格式

第一行一个正整数n,表示彩票数量,第二行7个整数,表示中奖号码,下面n行每行7个整数,描述n张彩票。

输出格式

7个空格隔开的数字,第1个数字表示特等奖的中奖张数,第2个数字表示一等奖的中奖张数,第3个数字表示二等奖的中奖张数……第7个数字表示六等奖的中奖张数。

样例输入

3

1 2 3 4 5 6 7

11 12 13 14 15 16 17

12 13 14 15 16 17 18

样例输出

0 0 0 0 0 0 1

数据规模和约定

30%的数据n<=100;

70%的数据n<=1000;

100%的数据n<=100000。

*****提示:数组定义为全局变量,可以分配更多内存。*****

分析:1.m数组标记中奖号码,mt数组标记彩票号码

2.如果一个号码在中奖号码中出现多次,且彩票中也出现多次,要取他们的最小值,不能当成只中了一个号码哦~

#include <iostream>
using namespace std;
int main() {
    int n, m[34] = {0}, a[10] = {0};
    cin >> n;
    for (int i = 0; i < 7; i++) {
        int t;
        cin >> t;
        m[t]++;
    }
    while (n--) {
        int mt[34] = {0}, sum = 0;
        for (int i = 0; i < 7; i++) {
            int t;
            cin >> t;
            mt[t]++;
        }
        for (int i = 1; i <= 33; i++) 
            sum += min(mt[i], m[i]);
        a[7 - sum]++;
    }
    for (int i = 0; i < 7; i++) {
        cout << a[i] << " ";
    }
    return 0;
}
❤❤点击这里 -> 订阅PAT、蓝桥杯、GPLT天梯赛、LeetCode题解离线版❤❤ 蓝桥杯 ADV-133 算法提高 彩票

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

缺失的终结

缺失的终结

【美】克尔•哈里斯 / 艾博 / 中国人民大学出版社 / 2017-6-15 / 39.00元

《缺失的终结》是一本反思互联网时代对普通人日常生活影响的书。作者认为,我们都曾渴望有一段远离现实生活烦扰的“瓦尔登湖”时光,悠闲地沉入自己的内心世界,从飞速变化的漩涡中暂时“缺失”。然而,互联网生活让我们每时每刻被互联网化,手环监测着我们的心跳和睡眠,微信、脸书、推特让我们人在床上就与世界链接起来,跑步了吗?走路了吗?英语单词背了吗?早餐的卡路里是否超标?坐在办公室,无数亟待处理的信息狂风暴雨般地......一起来看看 《缺失的终结》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具