news 2026/7/25 14:24:23

子数列求积【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
子数列求积【牛客tracker 每日一题】

子数列求积

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

给定一个长度为n nn的正整数序列 {a 1 , a 2 , … , a n a_1,a_2,…,a_na1,a2,,an} 。接下来有q qq次独立查询,第j jj次查询给出一对下标l j , r j l_j,r_jlj,rj,请你计算区间乘积

∏ i = l j r j a i ∏_{i=l_j}^{r_j}a_ii=ljrjai

并对模数10 9 + 7 10^9+7109+7取模后的结果。

输入描述:

第一行输入两个整数n , q ( 1 ≦ n , q ≦ 10 5 ) n,q(1≦n,q≦10^5)n,q(1n,q105),分别表示序列长度与查询数量。
第二行输入n nn个整数a 1 , a 2 , … , a n ( 1 ≦ a i < 10 9 + 7 ) a_1,a_2,…,a_n(1≦a_i<10^9+7)a1,a2,,an(1ai<109+7),表示序列元素。
此后q qq行,第j jj行输入两个整数l j , r j ( 1 ≦ l j ≦ r j ≦ n ) l_j,r_j(1≦l_j≦r_j≦n)lj,rj(1ljrjn),表示一次查询的左右端点。

输出描述:

输出一行q qq个用空格隔开的整数,第j jj个整数为第j jj次查询的答案。

示例1

输入:

5 3 1 2 3 4 5 1 2 1 3 2 5

输出:

2 6 120

说明:

区间[ 1 , 2 ] [1,2][1,2]的乘积为1 × 2 = 2 1×2=21×2=2[ 1 , 3 ] [1,3][1,3]的乘积为 1×2×3=6;[ 2 , 5 ] [2,5][2,5]的乘积为2 × 3 × 4 × 5 = 120 2×3×4×5=1202×3×4×5=120

解题思路

本题采用前缀积结合费马小定理+快速幂求逆元的方法求解区间乘积模运算问题,模数10 9 + 7 10^9+7109+7是质数;首先初始化前缀积数组s u m , s u m [ 0 ] = 1 , s u m [ i ] sum,sum[0]=1,sum[i]sumsum[0]=1sum[i]存储序列前i项元素的乘积对模数取模的结果,遍历序列完成O ( n ) O(n)O(n)的前缀积预处理;编写快速幂函数f p fpfp,实现高效的幂次取模计算;根据费马小定理,质数模数下a aa的乘法逆元为a p − 2 m o d p a^{p-2} \mod pap2modp,因此区间[ l , r ] [l,r][l,r]的乘积等于( s u m [ r ] × f p ( s u m [ l − 1 ] , p − 2 ) ) m o d p (sum[r] × fp(sum[l-1], p-2)) \mod p(sum[r]×fp(sum[l1],p2))modp;对每组查询直接套用公式计算结果,单次查询耗时O ( l o g p ) O(logp)O(logp)。该方法总时间复杂度O ( n + q l o g p ) O(n+qlogp)O(n+qlogp),完美适配n 、 q ≤ 10 5 n、q≤10^5nq105的规模,高效且精准完成所有区间乘积的模运算查询。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e5+10;ll a[N],sum[N];llfp(ll a,ll b){ll ans=1;while(b){if(b&1)ans=ans*a%p;a=a*a%p;b>>=1;}returnans;}intmain(){ll T=1;while(T--){ll n,q;cin>>n>>q;sum[0]=1;for(ll i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]*a[i]%p;}while(q--){ll l,r;cin>>l>>r;cout<<sum[r]*fp(sum[l-1],p-2)%p<<" ";}}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 11:48:32

销售额飙涨 2.5 倍,TACOS 直降 10 点!DeepBI 助力亚马逊卖家高效破局

亚马逊美国站卖家&#xff0c;谁没遇到过 “卖得多、赚得少” 的尴尬&#xff1f;深圳一家深耕美国站点的工厂卖家&#xff0c;就曾面临这样的困境——5月广告总销售额虽高&#xff0c;ACOS却高达30.58%&#xff0c;运营成本居高不下。直到邂逅DeepBI智能AI广告系统&#xff0c…

作者头像 李华
网站建设 2026/7/21 21:36:08

稠密、稀疏与MoE:大模型时代的三重架构革命

稠密、稀疏与MoE&#xff1a;大模型时代的三重架构革命当模型规模遇到物理极限&#xff1a;参数爆炸的困境想象一下建造一座摩天大楼。传统方法&#xff08;稠密模型&#xff09;就像用实心钢材建造每个楼层——结构坚固但极其沉重&#xff0c;很快会遇到地基承重极限。现代方法…

作者头像 李华
网站建设 2026/7/25 13:27:59

大数据情感分析:让广告更具情感吸引力

大数据情感分析&#xff1a;让广告从“无感”到“共情”的技术密码 一、引言&#xff1a;为什么你刷到的广告&#xff0c;总像在“喊口号”&#xff1f; 清晨地铁上&#xff0c;你刷到一条汽车广告&#xff1a;“XXSUV&#xff0c;动力强&#xff0c;空间大”——翻了个白眼划走…

作者头像 李华
网站建设 2026/7/21 18:39:21

人工智能基础层——支撑“AI+千行百业”落地的核心引擎

2026年作为“十五五”规划的开局之年&#xff0c;明确释放“推动人工智能全方位赋能千行百业”的核心信号&#xff0c;全面实施“人工智能”行动&#xff0c;推动人工智能与产业发展、文化建设、民生保障、社会治理深度融合&#xff0c;抢占产业应用制高点。 在此背景下&#…

作者头像 李华
网站建设 2026/7/21 21:41:59

多台电脑高效同步文件:主流解决方案全解析

在日常工作和学习中&#xff0c;我们经常需要在台式机、笔记本电脑、甚至家庭与办公室的多台设备间处理同一批文件。你是否也遇到过这样的困扰&#xff1a;在A电脑上修改了方案&#xff0c;到B电脑上却发现版本不对&#xff1b;想在家里继续办公室未完成的工作&#xff0c;却发…

作者头像 李华