美团秋招笔试真题 - 放它一马 信号模拟

放他一马

题目描述

小美会按照编号从小到大的顺序依次遇到 n 只怪物(编号为 1 ~ n),怪物 i(1 ≤ i ≤ n) 的生命为 ai。对于每只怪物,小美都可以选择放走 Ta 或者击败 Ta。如果放走怪物,小美将获得 i 点经验值。如果击败怪物,小美将获得 ai 点经验值,同时将额外获得 (x mod 10) × ai 点经验值,x 为击败怪物数量(包括这一个怪物)。求小美最多可以从这 n 个怪物中获得的经验值。

输入

第一行输入一个整数 n(1 ≤ n ≤ 2 × 105) 表示怪物数。第二行输入 n 个整数 ai(1 ≤ ai ≤ 109) 表示怪物的生命。

输出

输出一个整数表示小美可以获得最高的经验值。

示例1

输入

3 5 3 2

输出

27

思路和代码

实现:动态规划

  1. 设定f[i][j]表示为前i只怪物,击败j只怪兽(j mod 10)能够获得的最大经验。

  2. 状态转移方程:f[i][j] = max(f[i-1][j] + i, f[i-1][(j-1 + 10) %10] + i *(num+1)),分别表示放走和击败,取其中较大值。

  3. 最终答案就是f[n][j], j取值范围[1,9]中最大值。

优化/注意点:考虑到上述转移方程只和前一轮相关,可以使用一维滚动数组进行压缩。

import sys def main(): n = int(sys.stdin.readline().strip()) a = list(map(int, sys.stdin.readline().split())) dp = [0] * 10 dp_last = [0] * 10 for i in range(1, n + 1): num = a[i - 1] for j in range(10): if j <= i: dp[j] = max(dp_last[j] + i, dp_last[(j - 1 + 10) % 10] + j * num + num) dp_last = dp[:] res = max(dp_last) print(res) if __name__ == "__main__": main()

信号模拟

题目描述

如下所示,有 (2 × n) 个仪器,中间的方块是仪器的主体,每个仪器可以充当接收器或者信号源;主体的左右两侧是两个接线点。现在,我们将左端 (2 × n) 个接线点随机分成 (n) 组,每组各含两个点,并将右端 (2 × n) 个接线点同样随机分成 (n) 组。然后将每组的两个接线点用导线连接。这样一来,我们就得到了一组封闭的信号线路。具体而言:

  • 信号从任一信号源 (i) 出发,通过右侧接线点;
  • 随后,信号通过与右侧接线点连接的导线到达另外一个仪器的左侧接线点,再经过仪器主体到达右侧接线点;
  • 此时,如果这个仪器是接收器,那么就视为接收到了信号(注意,接收到信号不会影响信号继续往后传递)。
  • 这个过程持续进行,最终会形成若干个独立的循环。

现在,记 (x) 表示在所有接收器均能接收到信号的前提下,(2 × n) 个仪器中作为信号源的最少数数量。求解 (x) 的方差。可以证明答案可以表示为一个不可约分数 (p/q),为了避免精度问题,请直接输出整数 (p × q-1 mod M) 作为答案,其中 (M = 998244353),q-1 是满足 q × q-1 ≡ 1 (mod M) 的整数。

输入

每个测试文件均包含多组测试数据。第一行输入一个整数 (T (1 <= T <= 10^4)) 代表数据组数,每组测试数据描述如下:在一行上输入一个整数 (n (1 <= n <= 10^6)) 代表仪器的数量。

输出

对于每组测试数据,新起一行输出一个整数,表示 (x) 的方差对 (M = 998244353) 取模后的结果。

提示

本题中如果需要使用除法的取模,即计算(p * q ^-1 mod M)时,(q^-1)需要使用公式((q^ M-2 MOD M))得到,

示例1

输入

3 1 2 3

输出

0 887328314 168592380

思路和代码

实现:乘法逆元 + 前缀和

  1. 设X为最少信号源数,E(x)为期望,E(x ^2)为二次期望,D(X) = E(x ^2) - E(x) ^2
  2. inv[k]为k的逆元,设置total1total1[n]1 - n1/2(j -1)的前缀和,设置total2total2[n]1 - n(1/2(j -1))^2的前缀和,
  3. 初始化预计算逆元和前缀和
  4. 对于输入为n的情况下结果即为total[n] - total2[n]
#include<iostream> #include<vector> #include<string> #include <utility> #include<algorithm> #include<cmath> #include<map> #include<stack> #include<unordered_map> using namespace std; typedef long long LL ; const int MOD = 998244353, N = 1e6 + 10; // inv[i] 等于 i在MOD下的逆元 LL inv[2 * N]; // total1[i] 表示 1/(2i-1)的前缀和 LL total1[N]; // total2[i]表示(1/(2i-1))^2的前缀和 LL total2[N]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; int input[T],maxv = 0; for (int i = 0; i < T;i++) { cin >> input[i]; maxv = max(maxv, input[i]); } // 最大逆元下标 int maxv2 = 2 * maxv; inv[1] = 1; // 递推 for (int i = 2; i <= maxv2; i++) { inv[i] = (MOD - MOD / i) * inv[MOD % i] % MOD; } // 预处理前缀和 total1[0] = 0; total2[0] = 0; // 预计算前缀和 for (int j = 1; j <= maxv; j++) { LL x = inv[2 * j - 1]; total1[j] = (total1[j - 1] + x) % MOD; total2[j] = (total2[j-1] + x * x % MOD) %MOD; } for (int i = 0; i < T; i++) { int n = input[i]; // 方差公式 D(X) = sum1[n] = sum2[2] long long res = (total1[n] - total2[n] + MOD) % MOD; cout << res << endl; } return 0; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1170448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ms-swift新手村:第一课教你跑通Hello World

ms-swift新手村&#xff1a;第一课教你跑通Hello World 1. 引言 1.1 学习目标 本文旨在为刚接触 ms-swift 框架的新手提供一份从零开始的入门指南&#xff0c;帮助你快速完成第一个“Hello World”级别的模型推理任务。通过本教程&#xff0c;你将掌握&#xff1a; 如何安装…

【Week4_Day22】【软件测试学习记录与反思】【头条项目测试点设计思路、用例编写等实践(登录功能、发布文章功能), 收集问题, 反思改进,写博客】

【Week4_Day22】【软件测试学习记录与反思】【头条项目测试点设计思路、用例编写等实践(登录功能、发布文章功能), 收集问题, 反思改进,写博客】今日计划:复习知识,记录笔记,整理思维导图, 收集问题, 反思改进,…

电商商品信息提取:cv_resnet18_ocr-detection实战应用

电商商品信息提取&#xff1a;cv_resnet18_ocr-detection实战应用 1. 引言 1.1 业务场景描述 在电商平台的日常运营中&#xff0c;大量非结构化图像数据包含关键的商品信息&#xff0c;如品牌名称、型号参数、价格标签和促销文案。传统人工录入方式效率低、成本高且易出错。…

BERT智能填空服务应用案例:教育领域自动补全系统搭建

BERT智能填空服务应用案例&#xff1a;教育领域自动补全系统搭建 1. 引言 随着自然语言处理技术的不断演进&#xff0c;预训练语言模型在语义理解任务中展现出强大的能力。其中&#xff0c;BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xf…

小白也能懂:三步搭建AI智能翻译服务的终极教程

小白也能懂&#xff1a;三步搭建AI智能翻译服务的终极教程 你是不是也遇到过这样的情况&#xff1a;手头有一份英文产品文档、用户反馈或市场报告&#xff0c;想快速了解内容&#xff0c;但又不想一句句复制粘贴去查翻译&#xff1f;作为一名非技术背景的产品经理&#xff0c;…

本地GPU不够用?BGE-M3云端部署3步搞定

本地GPU不够用&#xff1f;BGE-M3云端部署3步搞定 你是不是也遇到过这种情况&#xff1a;作为博士生&#xff0c;正在做跨语言信息检索的研究&#xff0c;手头的实验数据越来越多&#xff0c;模型越来越复杂&#xff0c;可实验室的GPU总是被占满&#xff0c;而自己的笔记本显卡…

会议记录神器:用Fun-ASR-MLT-Nano-2512实现语音转文字

会议记录神器&#xff1a;用Fun-ASR-MLT-Nano-2512实现语音转文字 在企业会议录音堆积如山、客服录音依赖人工转写的今天&#xff0c;如何高效、安全地将语音内容转化为可编辑的文字&#xff1f;当一段录音涉及客户隐私或商业机密时&#xff0c;是否还能放心使用公有云API&…

IQuest-Coder-V1如何实现128K支持?原生上下文部署技术揭秘

IQuest-Coder-V1如何实现128K支持&#xff1f;原生上下文部署技术揭秘 1. 引言&#xff1a;面向软件工程的下一代代码大模型 IQuest-Coder-V1-40B-Instruct 是一款专为软件工程与竞技编程场景设计的新一代代码大语言模型。该系列模型旨在推动自主软件工程、智能编码助手和复杂…

Qwen3-32B智能写作实测:云端1小时生成5万字,成本2元

Qwen3-32B智能写作实测&#xff1a;云端1小时生成5万字&#xff0c;成本2元 你是不是也是一位网文作者&#xff1f;每天面对更新压力&#xff0c;卡文、断更、灵感枯竭成了常态。最近几年AI写作火了&#xff0c;你也听说“大模型能自动写小说”&#xff0c;于是兴致勃勃地下载…

教学实践:使用预配置镜像在课堂上快速演示DamoFD模型

教学实践&#xff1a;使用预配置镜像在课堂上快速演示DamoFD模型 在高校计算机视觉课程中&#xff0c;人脸检测是一个基础而关键的技术模块。它不仅是后续人脸识别、表情分析、图像编辑等任务的前置步骤&#xff0c;更是学生理解目标检测思想的重要切入点。然而&#xff0c;很…

社交网络知识图谱构建:NLP+图数据库实践

好的&#xff0c;各位朋友&#xff01;今天&#xff0c;我们将一起攀登一座名为“社交网络知识图谱”的技术山峰。这趟旅程&#xff0c;我们将融合自然语言处理&#xff08;NLP&#xff09;的深邃智慧与图数据库&#xff08;Graph Database&#xff09;的灵动结构&#xff0c;最…

毫秒级多任务场景:多进程的局限性与多线程“消耗>收益”的深度剖析

在并发编程领域&#xff0c;多进程与多线程是实现任务并行的两大核心手段。开发者常陷入“并行即提速”的认知误区&#xff0c;尤其在ms&#xff08;毫秒&#xff09;级短任务场景中&#xff0c;盲目使用多进程或多线程&#xff0c;不仅无法获得预期性能提升&#xff0c;反而会…

SFT/DPO/PPO/GRPO/RLHF 等对齐方法总结-初版

引言 文中的公式比较粗糙&#xff0c;建议看原版公式&#xff0c;此处公式仅作为个人理解使用的简化版 1 SFT&#xff08;Supervised Fine - Tuning&#xff0c;监督微调&#xff09; SFT 是在预训练大模型基础上&#xff0c;用高质量标注的输入 - 输出对数据进一步训练模型&…

BGE-Reranker-v2-m3性能优化:批处理技巧

BGE-Reranker-v2-m3性能优化&#xff1a;批处理技巧 1. 引言 1.1 业务场景描述 在当前检索增强生成&#xff08;RAG&#xff09;系统中&#xff0c;向量数据库的初步检索虽然高效&#xff0c;但往往返回大量语义相关性较低的候选文档。为提升最终回答的准确性和可靠性&#…

没Python经验能用IndexTTS吗?云端网页版3分钟出成果

没Python经验能用IndexTTS吗&#xff1f;云端网页版3分钟出成果 你是不是也遇到过这种情况&#xff1a;作为一名外语老师&#xff0c;想给学生准备一段地道的英语听力材料&#xff0c;或者生成一段带情绪的对话来提升课堂趣味性&#xff0c;结果一搜发现要用AI语音合成工具——…

# OpenCode + Agent Browser 自动化测试详细教程

OpenCode + Agent Browser 自动化测试详细教程 前言 本教程将手把手教你如何使用 OpenCode 结合 Agent Browser 进行自动化测试。即使你是完全的新手,也能通过本教程快速上手浏览器自动化测试。 一、环境准备 1.1 安装…

Qwen-Image-2512部署卡点?4090D单卡适配问题排查步骤详解

Qwen-Image-2512部署卡点&#xff1f;4090D单卡适配问题排查步骤详解 1. 背景与部署目标 随着多模态大模型的快速发展&#xff0c;阿里云推出的 Qwen-Image-2512 作为其最新一代图像生成模型&#xff0c;在分辨率、细节还原和语义理解能力上实现了显著提升。该模型支持高达25…

DeepSeek-OCR多列文本识别:报纸杂志版式处理案例

DeepSeek-OCR多列文本识别&#xff1a;报纸杂志版式处理案例 1. 背景与挑战 在数字化转型加速的背景下&#xff0c;传统纸质媒体如报纸、杂志、期刊等正面临大规模电子化归档的需求。这类文档通常具有复杂的版式结构——多栏排版、图文混排、标题突出、表格穿插等特点&#x…

救命神器10个AI论文软件,助继续教育学生轻松搞定论文!

救命神器10个AI论文软件&#xff0c;助继续教育学生轻松搞定论文&#xff01; AI 工具如何成为论文写作的得力助手 在当前的学术环境中&#xff0c;继续教育学生面临着日益繁重的论文写作任务。无论是学位论文、研究报告还是课程作业&#xff0c;都需要投入大量的时间和精力。而…

opencode baseURL配置错误?本地API对接问题解决

opencode baseURL配置错误&#xff1f;本地API对接问题解决 1. 引言 在使用 OpenCode 构建本地 AI 编程助手的过程中&#xff0c;开发者常遇到“API 连接失败”或“模型响应超时”等问题。这些问题大多源于 baseURL 配置不当&#xff0c;尤其是在集成 vLLM Qwen3-4B-Instruc…