当前位置: 首页 > news >正文

题目 3341: 蓝桥杯2025年第十六届省赛真题-抽奖

题目 3341: 蓝桥杯2025年第十六届省赛真题-抽奖
时间限制: 2s 内存限制: 192MB 提交: 415 解决: 105
题目描述
LQ 商场为了回馈广大用户,为在此消费的用户提供了抽奖机会:抽奖机有三个转轮,每个转轮上都分布有 n 个数字图案,标号为 1 ∼ n ,按照从 1 到 n 顺序转动,当转到第 n 个图案时会从第一个继续开始。奖项如下: 

1)三个相同的图案,积分 +200 ; 

2)两个相同的图案,积分 +100 ; 

3)三个数字图案,从左到右连续(例如 1, 2, 3 ),积分 +200 ; 

4)三个数字图案,经过顺序调整后连续(例如 2, 1, 3 或 3, 2, 1 ),积分 +100 ; 

抽奖机处于初始状态,三个转轮都处于第一个位置。每次开始抽奖,都会 产生三个对应的随机数 xi1, xi2, xi3 ,表示第 j 个转轮会向后转动 xi j 次停下。下 次抽奖时,转轮会从上一次转动后的位置开始继续转动。 注意,一次抽奖最多只能获得一次积分,如果同时命中多个奖项,以积分最大的那个奖项为准。 

请问,如果执行 m 次抽奖,总积分值是多少?

输入格式
输入的第一行包含一个正整数 n ,表示转轮大小。 

第二行包含 n 个正整数 a1, a2, · · · , an ,依次表示第一个转轮上的数字图案, 相邻整数之间使用一个空格分隔。 

第三行包含 n 个正整数 b1, b2, · · · , bn ,依次表示第二个转轮上的数字图案, 相邻整数之间使用一个空格分隔。 

第四行包含 n 个正整数 c1, c2, · · · , cn ,依次表示第三个转轮上的数字图案, 相邻整数之间使用一个空格分隔。 

第五行包含一个整数 m ,表示抽奖次数。

接下来 m 行,每行包含三个正整数 xi1, xi2, xi3 ,相邻整数之间使用一个空格分隔。

输出格式
输出一行包含一个整数表示答案,即 m 次抽奖累计获得的积分的值。

样例输入复制
4
3 2 4 1
2 2 2 2
4 3 0 9
3
4 4 4
3 1 1
40 39 2
样例输出复制
300
提示
【样例说明】 

三个转轮在初始状态下都在位置 1 。 

第一次抽奖,三个转轮都转动 4 次,都转一整圈到达位置 1 ,三个转轮上 的数字图案分别是 3、2、4 ,积分 +100 ; 

第二次抽奖,第一个转轮转动 3 次到达位置 4 ,第二个转轮转动 1 次到达 位置 2 ,第三个转轮转动 1 次到达位置 2 ,三个转轮上的数字图案分别是 1、 2、3 ,积分 +200 ; 

第三次抽奖,第一个转轮转动 40 次到达位置 4 ,第二个转轮转动 39 次到 达位置 1 ,第三个转轮转动 2 次到达位置 4 ,三个转轮上的数字图案分别是 1、 2、9 ,积分不增加。 

因此总积分为 300 。

【评测用例规模与约定】 

对于 20% 的评测用例,1 ≤ n ≤ 5 ,0 ≤ m ≤ 5 ; 

对于 40% 的评测用例,1 ≤ n ≤ 10 ,0 ≤ m ≤ 10 ; 

对于 60% 的评测用例,1 ≤ n ≤ 100 ,0 ≤ m ≤ 100 ; 

对于 80% 的评测用例,1 ≤ n ≤ 200 ,0 ≤ m ≤ 200 ; 

对于所有评测用例,1 ≤ n ≤ 103 ,0 ≤ m ≤ 103 ,0 ≤ ai , bi , ci ≤ 9 , 1 ≤ xi j ≤ 1000 。

1.分析

        模拟即可,由于取余,可以交换a[0]和a[n]的位置。

2.代码

#include<iostream>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;
const int MAX = 1e3 + 10;
typedef long long LL;
int a[MAX], b[MAX], c[MAX],re[MAX];
int n,m, A = 1, B = 1, C = 1;
int s;
int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}for (int i = 1; i <= n; i++) {cin >> b[i];}for (int i = 1; i <= n; i++) {cin >> c[i];}a[0] = a[n];b[0] = b[n];c[0] = c[n];cin >> m;while (m--) {int x, y, z;cin >> x >> y >> z;A = (A + x) % (n);re[0] = a[A];B = (B + y) % (n);re[1] = b[B];C = (C + z) % (n);re[2] = c[C];if (re[0]==re[1]&&re[1]==re[2]) {s += 200;}else if (re[0] == re[1] || re[1] == re[2] || re[0] == re[2]) {s += 100;}else if (re[0] + 1 == re[1] && re[1] + 1 == re[2]) {s += 200;}else {sort(re, re + 3);if (re[0] + 1 == re[1] && re[1] + 1 == re[2]) {s += 100;}}}cout << s << endl;return 0;
}

http://www.xdnf.cn/news/674155.html

相关文章:

  • 颠覆传统,智领未来——UMI企业智脑:重新定义企业智能化转型的全新可能
  • 不同电脑同一个网络ip地址一样吗?如何更改
  • ODSA架构与操作-1
  • 【Elasticsearch】_update api的增量更新
  • 企业级RAG技术实战指南:从理论到落地的全景解析
  • .NET用C#设置Excel单元格和工作表的背景
  • AI大模型学习三十、ubuntu安装comfyui
  • vue3简介以及创建第一个vue3工程
  • 无人机仿真环境(3维)附项目git链接
  • 仓颉入门:特性
  • Elasticsearch的运维
  • ubuntu20.04安装CUDA、Cudnn
  • 深度学习————注意力机制模块
  • Milvus向量数据库DML操作实战教程
  • android平台驱动开发(四)--系统属性节点控制GPIO
  • 字节跳动BAGEL-7B-MoT模型开源:多模态AI技术的新范式与行业涟漪
  • Python爬虫实战:研究Playwright框架相关技术
  • SD07_NVM的安装及相关操作
  • 解码STREAM:GEO技术方法论全解析
  • 多空短线决策副图指标,通达信炒股软件指标操盘图文教程
  • 安卓学习笔记-声明式UI
  • 2025年5月蓝桥杯stema省赛真题——象棋移动
  • ViewModel
  • MySQL问题:主要索引类型(聚簇、辅助、覆盖、前缀)
  • WPF中的图标闪烁功能
  • ubuntu 制作 ssl 证书
  • WEB安全威胁与SSL
  • 互联网大厂Java面试:从Spring到微服务的挑战
  • Linux下使用socat将TCP服务转为虚拟串口设备
  • Docker 在 CI/CD 中的应用:自动化构建、测试与部署流程设计