夯实基础——P2550 [AHOI2001]彩票摇奖

题目链接:https://www.luogu.org/problem/P2550

P2550 [AHOI2001]彩票摇奖

题目描述

为了丰富人民群众的生活、支持某些社会公益事业,北塔市设置了一项彩票。该彩票的规则是:

(1) 每张彩票上印有 7 个各不相同的号码,且这些号码的取指范围为 1~33。

(2) 每次在兑奖前都会公布一个由七个各不相同的号码构成的中奖号码。

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

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

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

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

三等奖:要求彩票上有 4 个号码出现在中奖号码中。

四等奖:要求彩票上有 3 个号码出现在中奖号码中。

五等奖:要求彩票上有 2 个号码出现在中奖号码中。

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

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

现已知中奖号码和小明买的若干张彩票的号码,请你写一个程序帮助小明判断他买的彩票的中奖情况。

输入格式

文件的第一行只有一个自然数 n (n < 1000) ,表示小明买的彩票张数;

第二行存放了 7 个介于 1 和 33 之间的自然数,表示中奖号码;

在随后的 n 行中每行都有 7 个介于 1 和 33 之间的自然数,分别表示小明所买的 n 张彩票。

输出格式

依次输出小明所买的彩票的中奖情况(中奖的张数),首先输出特等奖的中奖张数,然后依次输出一等奖至六等奖的中奖张数。

输入输出样例

输入 #1复制

2
23 31 1 14 19 17 18
12 8 9 23 1 16 7
11 7 10 21 2 9 31

输出 #1复制

0 0 0 0 0 1 1

这道题其实也没什么难度,就统计一下就出来了,但打基础,最重要的是编程思想的养成和信心的建立!!!
 1 #include <iostream>
 2
 3 using namespace std;
 4
 5 int n,aim[10101],pr[10];
 6
 7 int main()
 8 {
 9     cin>>n;
10     for(int i=1;i<=7;i++)
11     {
12         int x; cin>>x;
13         aim[x]++;
14     }
15     for(int i=1;i<=n;i++)
16     {
17         int t=0;
18         for(int j=1;j<=7;j++)
19         {
20             int x; cin>>x;
21             if(aim[x]) t++;
22         }
23         pr[t]++;
24     }
25     for(int i=7;i>0;i--)
26     cout<<pr[i]<<" ";
27     cout<<endl;
28     return 0;
29 }

夯实基础,认真做好每一道题! ! !

作者:Gmax

本文版权归作者和博客园共有,转载请用链接,请勿原文转载,Thanks?(?ω?)?

原文地址:https://www.cnblogs.com/Gmax/p/11330752.html

时间: 2024-11-10 23:54:36

夯实基础——P2550 [AHOI2001]彩票摇奖的相关文章

Cocos2d-x 3.2 大富翁游戏项目开发-第二十四部分 彩票开奖

每隔N个回合,彩票开奖一次,每期开奖奖金固定5万,暂不累积.摇奖效果一般,以后考虑用物理引擎实现 1.定义彩票开奖类 bool LotteryPublish::init() { addItemSpriteFrameCache(); SpriteFrame* spf; spf = itemSpriteFrameCache->getSpriteFrameByName("publish_ly01.png"); Sprite::initWithSpriteFrame(spf); setI

43_2013年11月22日 线程池 Socket(Thread Lock Process 摇奖 线程池ThreadPool)

1>模拟线程池,生产者消费者问题 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Product { class Program { static void Main(string[] args) { //创建一个池子 MyConncetion[]

P235 实战练习(集合类2)和摇奖程序

1.分别向Set集合以及List集合中添加“A”.“a”.“c”.“C”.“a”5个元素,观察重复值“a”能否在List集合以及Set集合中成功添加. 1 package org.hanqi.practise; 2 import java.util.*; 3 public class Test2 { 4 5 public static void main(String[] args) { 6 7 Set<String> s = new HashSet<String>(); 8 s.

夯实基础——快速排序

逻辑结构:递归栈 物理结构:数组 快速排序分析: 最优时间复杂度:O(nlog2n)在乱序情况下 最坏时间复杂度:O(n^2) 在顺序情况下 平均时间复杂度:O(nlog2n) 空间复杂度:O(n) 稳定性:不稳定 快速排序主要有两个函数: 1 一次划归 int partition(int a[],int low,int high); 2 递归快速排序 void QuickSort(int a[],int low,int high); 3 非递归快速排序 void NonQuickSort(in

冒泡,二分制,模拟摇奖

1. 实现冒泡排序算法. //冒泡排序 int [] a={1,7,9,3,6,0,2}; int z; for(int i=0;i<a.length;i++) { for(int j=i;j<a.length;j++) { if(a[i]>a[j]) { z=a[i]; a[i]=a[j]; a[j]=z; } } System.out.print(a[i]);  } 2.实现二分查找法. public int binarySearch(int[] data,int aim){//以i

摇奖程序和随机生成验证码

1 //摇奖程序 2 Random r1=new Random(); 3 Set<Integer> s=new HashSet<Integer>(); 4 while(s.size()<10) 5 { 6 int i1=r1.nextInt(20); 7 if(!s.contains(i1)) 8 { 9 s.add(i1); 10 } 11 } 12 System.out.println("从20里面随机抽取10个数:"); 13 for(int t:s

夯实基础——堆排序

堆结构:任意的一个父节点大于其子节点. 逻辑结构:二叉树 物理结构:数组 如果从角标0开始 父节点左孩子节点:2*i+1 父节点右孩子节点:2*i+2 最后一个非叶节点:(n-1)/2 如果从角标1开始 父节点左孩子节点:2*i 父节点右孩子节点:2*i+1 最后一个非叶节点:n/2 堆排序分析: 最优时间复杂度:O(nlog2n) 最坏时间复杂度:O(nlog2n) 平均时间复杂度:O(nlog2n) 空间复杂度:O(1) 稳定性:不稳定 堆排序主要分三个函数: 1 调整成堆结构 void H

JAVA小项目之摇奖机

功能: 点击”摇杆“开始: 两种结束滚动方式,A:点击”摇杆“ B:分别点击 对应结果框的按钮: 实现最后减速停下来效果,模拟真实摇奖机. 知识点:A.线程的控制,B.图片轮播原理 效果图: "为什么传不了图片?" 窗口类 1 package com.gxlee.lhj; 2 3 import java.awt.Color; 4 import java.awt.Container; 5 import java.awt.Graphics; 6 import java.awt.event.

【夯实基础】Spring在ssh中的作用

尊重版权:http://blog.csdn.net/qjlsharp/archive/2009/03/21/4013255.aspx 写的真不错. 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来做应用层的,他它负责调用业务逻辑serivce层.所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)