题解:AT_abc368_g [ABC368G] Add and Multiply Queries

这道题挺有启发性的。

首先我们需要注意到一件事情,题目上说保证答案不超过 1018,而在题目中说对 b 数组是连乘,因为即使是 2,只需要累乘 60 次就可以超过 1018,所以我们断然 b 数组中比 1 大的元素不会很多。

于是想到一种暴力,用一个 set 存储 b 中所有比 1 大的位置,在查询操作中每次二分找到 b 在当前左端点右边的第一个比 1 大的位置,特判掉边界以后,在这段区间中选择 a 数组一定更优,对于这个位置,只需要比较一下是选 a 还是选 b 即可。

a 区间加法的时候用树状数组什么的搞一下就可以了。

AC记录

posted @   Redamancy_Lydic  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示