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

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

内容简介:问题描述输入格式第一行一个正整数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 算法提高 彩票

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

查看所有标签

猜你喜欢:

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

算法设计与分析基础

算法设计与分析基础

Anany Levitin / 清华大学出版社 / 2007-11 / 59.00元

作者基于丰富的教学经验,开发了一套对算法进行分类的新方法。这套方法站在通用问题求解策略的高度,能对现有的大多数算法进行准确分类,从而使读者能够沿着一条清晰的、一致的、连贯的思路来探索算法设计与分析这一迷人领域。本书作为第2版,相对第1版增加了新的习题,还增加了“迭代改进”一章,使得原来的分类方法更加完善。 本书十分适合作为算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者使用,只要......一起来看看 《算法设计与分析基础》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试