双色球

双色球

单点时限: 2.0 sec

内存限制: 512 MB

双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。投注时选择6个红色球号码和1个蓝色球号码组成一注进行单式投注。其中奖规则为:

一等奖(6+1)
二等奖(6+0)
三等奖(5+1)
四等奖(5+0、4+1)
五等奖(4+0、3+1)
六等奖(2+1、1+1、0+1)
其中(a+b)即为有a个红色球,b个蓝色球与开奖某个数字相同(只与数字有关,与位置无关)。
现在你有 n 张双色球彩票,以及本场彩票开奖结果,请你求出这 n 张彩票获得的最高奖。

输入格式
第一行输入一个 n ,表示 n 张彩票
接下来 n 行,每行 7 个数字,表示每张彩票的选号,其中前六个位红色球,后一个为蓝色球。
接下来一行,输入 7 个数字,表示开奖结果,其中前六个为红色球,后一个为蓝色球。

输出格式
输出所有彩票中能获得的最高等级奖,若无,则输出”0”。

样例
input
5
2 17 21 28 30 32 10
2 12 17 29 30 31 15
9 10 19 25 26 30 12
6 8 18 29 30 31 10
13 14 21 22 27 32 8
6 7 12 19 27 28 12
output
6
input
3
2 17 21 28 30 32 10
2 12 17 29 30 31 15
9 10 19 25 26 30 12
6 8 18 29 30 31 10
output
6
提示
彩票六个红色球数字均为从小到大排列

可以用栈(题目说了均为从小到大排列,所以直接用数组来比较也可以)
结束之后五分钟才写出来的(太遗憾了)

#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
int a[100000][10];
int b[8];
int main(){
	int n;
	
	cin>>n;
	for(int i=0;i<n;i++){
		for(int j=0;j<7;j++){
			cin>>a[i][j];
		}
	}
	int deng=7;
	
	for(int j=0;j<7;j++){
			cin>>b[j];
		}
		for(int i=0;i<n;i++){
			int aa=0,bb=0,deng1=7;
			int s=0;
			for(int j=0;j<6;j++){
				if(b[s]==a[i][j]&&s<6){
					aa++;
					s++;
				}
				else{
					while(b[s]<=a[i][j]&&s<6){
				if(b[s]==a[i][j]){
					aa++;
					s++;
				}
				else{
					s++;
				}
					}
				}
			}
		
			if(b[6]==a[i][6]) bb++;
			if(aa==6&&bb==1) deng1=1;
			if(aa==6&&bb==0) deng1=2;
			if(aa==5&&bb==1) deng1=3;
			if((aa==5&&bb==0)||(aa==4&&bb==1)) deng1=4;
			if((aa==4&&bb==0)||(aa==3&&bb==1)) deng1=5;
			if((aa==2&&bb==1)||(aa==1&&bb==1)||(aa==0&&bb==1)) deng1=6;
			if(deng1<deng){
				deng=deng1;
			}
			//cout<<deng1<<" "<<aa<<" "<<bb<<endl;
			
		}
		if(deng<7) cout<<deng<<endl;
		else cout<<"0"<<endl;
	return 0;
}
双色球是一种彩票游戏,通常由6个红球号码(1-32)和1个蓝球号码(1-16)组成。在Excel中处理或生成双色球数据可以通过以下方法实现: ### 数据处理 如果用户已经有双色球的历史开奖数据,可以利用Excel进行整理、筛选和分析: - **使用公式检查重复号码**:例如,使用`COUNTIF`函数判断某一列是否存在重复的红球或蓝球号码。 - **条件格式化**:通过设置条件格式高亮显示特定范围内的号码出现频率较高或较低的情况。 - **透视表分析**:创建数据透视表统计每个号码出现的次数,帮助分析趋势。 ### 生成随机双色球号码 在Excel中可以使用函数生成随机的双色球号码组合: - **红球生成**:红球号码范围是1到32,可以使用以下公式生成6个不重复的红球号码: ```excel =INDEX(FILTER({1,2,...,32}, COUNTIF($A$1:A1, {1,2,...,32})=0), RANDBETWEEN(1,32-COUNTA($A$1:A1))) ``` 将此公式分别填入A1到A6单元格,并向右填充以生成多个组合。 - **蓝球生成**:蓝球号码范围是1到16,可以直接使用`RANDBETWEEN(1,16)`函数生成。 ### 自动化生成双色球号码(VBA) 如果需要更高效的生成方式,可以使用Excel VBA编写宏代码来生成双色球号码: ```vba Sub GenerateLottoNumbers() Dim i As Integer, j As Integer, temp As Integer Dim numbers(1 To 6) As Integer Dim lotteryNumber As String ' 生成红球号码 For i = 1 To 6 numbers(i) = i Next i ' 洗牌算法打乱顺序 For i = 6 To 2 Step -1 j = Int(i * Rnd) + 1 temp = numbers(i) numbers(i) = numbers(j) numbers(j) = temp Next i ' 输出红球号码 For i = 1 To 6 Cells(1, i).Value = numbers(i) Next i ' 生成蓝球号码 Cells(1, 7).Value = Int(16 * Rnd) + 1 End Sub ``` ### 可视化双色球数据 可以将历史开奖数据导入Excel后使用图表功能进行可视化分析: - **柱状图**:展示不同红球号码的出现频率。 - **折线图**:观察蓝球号码随时间的变化趋势。 - **饼图**:分析某些号码区间占比情况。 ### 使用Power Query清洗数据 如果导入的数据存在格式问题,可以使用Power Query清理数据: - 分列红球和蓝球号码。 - 删除多余的空格或特殊字符。 - 转换数据类型为数字或日期等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值