CSP模拟赛总结1 总结

T1

【题目描述】
蜗牛老师想试试运气去购买彩票,所以他开始研究彩票大乐透的玩法: 超级大乐透是指由购买者从01—35共35个号码中选取5个号码为前区号码,并从01—12共12个号码中选取2个号码为后区号码组合为一注彩票进行的投注。每注金额人民币2元。

蜗牛老师打算用自己的零花钱去试试运气,选择了一组心目中的幸运数字,买了一张彩票。比如,左下图是蜗牛老师可能选择的一种下注方案:
在这里插入图片描述
两天后,中奖号码公布,蜗牛老师开始研究到底中了多少奖金。获奖方式如图二:例如,中4+2就表示蜗牛老师选择下注的数字当中前区有4个数字和中奖号码相同,后区有2个数字和中奖号码相同,获得三等奖,奖金3000元
在这里插入图片描述
对照中奖号码对蜗牛老师来说是一个头疼的问题,他找到你,希望你帮忙写一个程序,只要输入彩票号码和开奖号码,就可以知道奖金值。

【输入格式 】
第一行7个整数,表示蜗牛老师购买的彩票号码。前5个为前区号码,范围在1到35,保证不重复;后2个为后区号码,范围在1到12,保证不重复。

第二行7个整数,表示开奖号码,前5个为前区中奖号码,范围在1到35,保证不重复且;后2个为后区号码,范围在1到12,保证不重复。

注意,前区和后区是分开选数的,前区的数字可以和后区的数字相同。
【输出格式】
输出蜗牛老师的中奖金额,未中奖输出0。
【样例数据】*
input1

2 7 8 14 18 6 11
2 7 8 14 18 6 11

output1

5000000

input2

2 7 8 14 18 6 11
1 11 14 18 25 6 11

output2

10

[数据规模与约定]
对于前 40 % 40\% 40%的数据,若蜗牛老师的号码与中奖号码相同,那么其位置也是相同的。例如中奖号码10位于第三个数,那么蜗牛老师的彩票中如果出现10,也肯定在第三个数。

对于前 70 % 70\% 70%的数据,蜗牛老师的号码前区和后区都是从小到大有序给出。(中奖号码不一定有序)

对于最后 30 % 30\% 30%的数据,蜗牛老师的号码前区或后区的数字不一定有序。

时间限制: 1 s 1s 1s
空间限制: 256 M B 256MB 256MB
【分析】
大模拟,首先读懂题,题面有点长。
规则很简单,没有任何策略,按要求计算相等的个数即可。
前半段和后半段相等的个数可以用二维数组来记录。
具体看代码。
【C++代码】

#include<bits/stdc++.h>
using namespace std;
int buyFront[40],buyBack[15];
int zFront[40],zBack[15];
int main()
{
   
	int n;
	for(int i=0;i<5;i++)
		cin>>n,buyFront[n]++;
	for(int i=0;i<2;i++)
		cin>>n,buyBack[n]++;
	for(int i=0;i<5;i++)
		cin>>n,zFront[n]++;
	for(int i=0;i<2;i++)
		cin>>n,zBack[n]++;
	int front=0,back=0;
	for(int i=1;i<=35;i++)
		if(buyFront[i]==zFront[i]&&zFront[i]==1)
			front++;
	for(int i=1;i<=12;i++)
		if(buyBack[i]==zBack[i]&&zBack[i]==1)
			back++;
	if(front==5)
	{
   
		if(back==2) cout<<5000000;
		else if(back==1) cout<<250000;
		else cout<<3000;
	}
	if(front==4)
	{
   
		if(back==2) cout<<3000;
		else if(back==1) cout<<200;
		else cout<<10;
	}
	if(front==3)
	{
   
		if(back==2) cout<<200;
		else if(back==1) cout<<10;
		else cout<<5;
	}
	if(front==2)
	{
   
		if(back==2) cout<<10;
		else if(back==1) cout<<5;
		else cout<<0;
	}
	if(front==1)
	{
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值