MoonLight的运算问题【牛客tracker  每日一题】
MoonLight的运算问题算法题目时间限制1秒空间限制256M网页链接牛客tracker牛客tracker 每日一题完成每日打卡即可获得牛币。获得相应数量的牛币能在【牛币兑换中心】换取相应奖品助力每日有题做丰盈牛币日益多题目描述月色哥哥手中有一个数字x xx最初x 0 x 0x0。给出一个长度为n nn的序列a aa月色哥哥会从序列的第一个元素a 1 a_1a1​按顺序看到序列的最后一个元素a n a_nan​。对于序列的第i ii个元素a i a_iai​月色哥哥可以进行下面的操作之一令x x ⋅ a i x x \cdot a_ixx⋅ai​令x x a i x x a_ixxai​。请求出x xx的最大值并输出这个最大值除998244353 998244353998244353的余数。输入描述第一行包含一个整数T ( 1 ≤ T ≤ 10 5 ) T(1 \le T \le 10^5)T(1≤T≤105)表示测试用例的组数。对于每组测试用例第一行包含一个整数n ( 1 ≤ n ≤ 2 ⋅ 10 5 ) n(1 \le n \le 2\cdot 10^5)n(1≤n≤2⋅105)表示序列的长度。第二行包含n nn个整数a 1 … a n ( 0 ≤ a i ≤ 10 9 ) a_1 \dots a_n(0 \le a_i \le 10^9)a1​…an​(0≤ai​≤109)表示该序列。保证对于所有的测试用例n nn的总和不超过2 ⋅ 10 5 2 \cdot 10^52⋅105。输出描述对于每组测试用例仅输出一行包含一个整数表示答案。样例输入3 2 1 1 1 0 1 998244353样例输出2 0 0样例解释第一组样例初始x 0 x 0x0第一个元素a 1 1 a_11a1​10 1 1 0110110 × 1 0 0 \times 100×10选加法x 1 x1x1第二个元素a 2 1 a_21a2​11 1 2 1121121 × 1 1 1 \times 111×11选加法最终最大值为2。第二组样例初始x 0 x 0x0元素为00 0 0 0000000 × 0 0 0 \times 000×00结果0。第三组样例998244353 998244353998244353模998244353 998244353998244353等于0。解题提示拓展初始值x 0 x 0x0注意当x 0 x 0x0时乘任何数结果依旧是0优先选加法当a i 0 a_i 0ai​0加法得到x 0 x x0xx0x乘法得到0只要当前x 0 x0x0一定选加法当a i 1 a_i1ai​1x 1 x × 1 x1 x \times1x1x×1永远选加法其余情况比较x a i xa_ixai​和x × a i x \times a_ix×ai​取较大值运算之后再对998244353 998244353998244353取模。⚠️注意不能中途直接取模比较大小模运算会破坏数值大小关系需要保留真实数值逻辑判断选加还是选乘运算完成后再取模。解题思路本题是贪心 模运算的在线决策问题。初始值x 0 x0x0按顺序处理每个a i a_iai​每次可选择加或乘求最终x xx的最大值对998244353 998244353998244353取模的结果。由于x xx的真实值可能极大无法直接存储但可以利用“x xx与1 11的大小关系”来决策同时用模运算维护结果避免溢出。1. 问题等价转化当前值x xx与1 11的关系每次操作前x xx的真实值对后续决策影响很大若x ≤ 1 x \le 1x≤1则对于任意a i ≥ 0 a_i \ge 0ai​≥0都有x a i ≥ x × a i x a_i \ge x \times a_ixai​≥x×ai​等号当x 0 , a i 0 x0,a_i0x0,ai​0或x 1 , a i 0 x1,a_i0x1,ai​0时取得。因此此时加法永远不劣于乘法应选择加法。若x 1 x 1x1当a i ≥ 2 a_i \ge 2ai​≥2时x × a i ≥ x a i x \times a_i \ge x a_ix×ai​≥xai​因为x a i − ( x a i ) ( x − 1 ) ( a i − 1 ) − 1 ≥ 0 x a_i - (x a_i) (x-1)(a_i-1)-1 \ge 0xai​−(xai​)(x−1)(ai​−1)−1≥0当x 2 , a i 2 x2,a_i2x2,ai​2时取等号其余均大于。所以乘法不劣于加法。当a i ≤ 1 a_i \le 1ai​≤1时x a i x × a i x a_i x \times a_ixai​x×ai​a i 0 a_i0ai​0或1 11时乘法至多等于x xx而加法更大。因此应选择加法。关键性质一旦真实值x xx超过1 11它永远不会再降回≤ 1 \le 1≤1因为加法不减小乘法也不减小。所以决策规则可以简单固定。2. 算法实现为了在不存储真实值的情况下做出正确决策使用一个变量s来跟踪真实值是否已经超过1 11初始化x_mod 0, flag 0。其中flag表示真实值是否 1 11用s表示当前真实值当它≤ 1 \le1≤1时否则只记录s2作为标记。遍历每个a i a_iai​若flag 0真实值≤ 1 \le1≤1选择加法s a_ix_mod (x_mod a_i) % MOD。若s 1则之后进入flag 1状态。否则真实值 1 11若a i ≥ 2 a_i \ge 2ai​≥2选择乘法x_mod x_mod * a_i % MOD若a i ≤ 1 a_i \le 1ai​≤1选择加法x_mod (x_mod a_i) % MOD。最后输出x_mod。为什么s不会溢出s只在flag0时更新此时s初始为0 00每次加a i a_iai​但一旦s 1就停止更新因此s最大不超过2 max ⁡ ( a i ) ≤ 10 9 2 2 \max(a_i) \le 10^922max(ai​)≤1092远小于long long上限不会溢出。之后s不再变化只作为标志使用。3. 复杂度分析时间复杂度每组数据遍历一次序列O ( n ) O(n)O(n)。所有测试数据∑ n ≤ 2 × 10 5 \sum n \le 2\times 10^5∑n≤2×105总时间O ( ∑ n ) O(\sum n)O(∑n)非常快。空间复杂度O ( n ) O(n)O(n)存储序列或可优化为O ( 1 ) O(1)O(1)边读边处理但给定实现使用vector仍为O ( n ) O(n)O(n)在限制内可行。总结利用“真实值是否超过1 11”作为决策分界线通过一个不溢出的标志变量避免直接比较巨大整数同时在模意义下维护答案。贪心策略正确性由简单的代数不等式保证实现简洁高效。代码内容#includebits/stdc.husingnamespacestd;#defineendl\ntypedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll INF1e18;constll M1e610;constll mod998244353;llmx(vectorlla){ll x0,s0;for(autop:a){if(s1){sp;x(xp)%mod;}else{if(p2)x(x*p)%mod;elsex(xp)%mod;}}returnx;}voidsol(){ll t;cint;while(t--){ll n;cinn;vectorlla(n);for(ll i0;in;i)cina[i];coutmx(a)\n;}}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);sol();return0;}

相关新闻

AGV天然橡胶万向轮选型指南:从静音抓地到避坑实践

AGV天然橡胶万向轮选型指南:从静音抓地到避坑实践

你第一次接触AGV(自动导引运输车)时,可能觉得它最酷的是激光导航、调度算法或者智能避障。但当你真正负责一个项目,看着它在产线上跑起来,才会发现一个更朴素、也更关键的问题: 它脚下那双“鞋”——万向轮…

2026/8/24 13:54:41 阅读更多 →
Java面试——算法

Java面试——算法

算法1、二分查找算法1.1、二分查找算法的原理1.2、二分查找算法的Java实现2、冒泡排序算法2.1、冒泡排序算法的原理2.2、冒泡排序算法的Java实现3、插入排序算法3.1、插入排序算法的原理3.2、插入排序算法的Java实现4、快速排序算法4.1、快速排序算法的原理4.2、快速排序算法的…

2026/8/24 13:53:38 阅读更多 →
2026-08-23:购买苹果的最低成本Ⅱ。用go语言,给定 n 家商店以及一个价格数组 prices,其中 prices[i] 表示第 i 家商店出售一个苹果的价格。 另外提供若干条双向道路。每条道

2026-08-23:购买苹果的最低成本Ⅱ。用go语言,给定 n 家商店以及一个价格数组 prices,其中 prices[i] 表示第 i 家商店出售一个苹果的价格。 另外提供若干条双向道路。每条道

2026-08-23:购买苹果的最低成本Ⅱ。用go语言,给定 n 家商店以及一个价格数组 prices,其中 prices[i] 表示第 i 家商店出售一个苹果的价格。 另外提供若干条双向道路。每条道路包含四个整数: ui 和 vi:表示道路连接商店…

2026/8/24 13:53:38 阅读更多 →

最新新闻

AHP层次分析法:从主观决策到科学量化的多准则评估指南

AHP层次分析法:从主观决策到科学量化的多准则评估指南

1. 从“拍脑袋”到“算出来”:为什么我们需要AHP 如果你曾经参与过任何需要做决策的场合,无论是公司里评选年度优秀员工、选择供应商,还是个人生活中纠结于“该买哪款手机”、“该去哪个城市发展”,你大概率经历过一种熟悉的痛苦&…

2026/8/24 17:18:31 阅读更多 →
常见WEB漏洞—SQL 注入

常见WEB漏洞—SQL 注入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */ #content_views .toc, /* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */ #content_vie…

2026/8/24 17:18:31 阅读更多 →
AestheticDialogs 1.x 到 2.0 迁移完全指南:从 XML Builder 到声明式 Compose 对话框

AestheticDialogs 1.x 到 2.0 迁移完全指南:从 XML Builder 到声明式 Compose 对话框

AestheticDialogs 1.x 到 2.0 迁移完全指南:从 XML Builder 到声明式 Compose 对话框 【免费下载链接】AestheticDialogs 📱 An Android Library built with Jetpack Compose for 💫 fluid, 😍 beautiful, 🎨 custom D…

2026/8/24 17:18:30 阅读更多 →
Rim窗口分割算法:Frame与Section二叉分裂树如何实现分割、关闭与调整大小

Rim窗口分割算法:Frame与Section二叉分裂树如何实现分割、关闭与调整大小

Rim窗口分割算法:Frame与Section二叉分裂树如何实现分割、关闭与调整大小 【免费下载链接】rim Aspiring vim-like text editor 项目地址: https://gitcode.com/gh_mirrors/ri/rim Rim 是一个用 Rust 编写的类 Vim 文本编辑器,它的窗口分割算法非…

2026/8/24 17:18:30 阅读更多 →
RACE-Bench:评测AI代码智能体在仓库级功能开发中的真实能力

RACE-Bench:评测AI代码智能体在仓库级功能开发中的真实能力

1. 从“单文件”到“仓库级”:代码智能体的能力跃迁与评测困境最近和几个做AI代码生成工具的朋友聊天,大家普遍有个感觉:现在的代码大模型,在单个函数、单个文件级别的补全和生成上,已经做得相当不错了。无论是GitHub …

2026/8/24 17:18:30 阅读更多 →
【单片机毕设案例分享】基于 51/STM32 单片机的按键可调消防安防联动控制系统设计 基于 51/STM32 单片机的室内环境火灾风险监测与自动防护系统(017604)

【单片机毕设案例分享】基于 51/STM32 单片机的按键可调消防安防联动控制系统设计 基于 51/STM32 单片机的室内环境火灾风险监测与自动防护系统(017604)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于单片机,STM32单片机,51单片机,J…

2026/8/24 17:17:30 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →