Producte en Rangs de Potències

Solució eficient per a consultes de rang del producte de potències: descomposició binària de n per a potències de 2, ús de prefixos d'exponents i exponenciació modular (mod 1e9+7) per a respostes ràpides.

domingo, 17 de agosto de 2025 • 4 min de lectura • Equip Q2BSTUDIO

Intel·ligència-Artificial-

2438. Range Product Queries of Powers

Descripció del problema: Donat un enter positiu n es construeix un array powers indexat des de 0 format pel nombre mínim de potències de 2 que sumen n. L'array powers està ordenat en ordre no decreixent i existeix una única representació. Es rep un array 2D queries on cada queries[i] = [lefti,righti] representa una consulta que demana el producte de tots els elements powers[j] amb lefti <= j <= righti. Retorna un array answers amb les respostes de cada consulta preses mòdul 10^9+7.

Exemple 1: Entrada n = 15, queries = [[0,1],[2,2],[0,3]] Sortida [2,4,64] Explicació: per a n = 15 powers = [1,2,4,8]. Producte d'índexs 0 a 1 = 1*2 = 2. Índex 2 = 4. Producte de 0 a 3 = 1*2*4*8 = 64.

Exemple 2: Entrada n = 2, queries = [[0,0]] Sortida [2] Explicació: per a n = 2 powers = [2]. L'única consulta retorna 2.

Idea principal: La descomposició de n en potències de 2 s'obté directament de la seva representació binària. Cada bit en 1 a la posició i correspon a la potència 2^i. L'array powers conté aquestes potències en ordre no decreixent si recorrem els bits de menor a major pes.

Solució eficient: En lloc de multiplicar rang a rang, aprofitem que cada element és una potència de 2. Si guardem per a cada posició el seu exponent i, el producte d'un rang correspon a 2 elevat a la suma d'aquests exponents. Passos: 1 Construir la llista exps amb els exponents i tals que el bit i de n és 1. 2 Calcular un prefix pref de sumes d'exponents on pref[0] = 0 i pref[k+1] = pref[k] + exps[k]. 3 Per a una consulta [l,r] calcular sumExp = pref[r+1] - pref[l]. 4 Calcular powmod(2,sumExp,MOD) amb MOD = 10^9+7 per obtenir la resposta. Aquesta aproximació evita multiplicacions repetides i és molt ràpida perquè la mida de powers és com a màxim 31 per a n <= 10^9.

Complexitat: Construcció de l'array en O(log n). Preprocessat de pref en O(m) amb m nombre de bits en 1. Cada consulta es respon en temps O(log MOD) per l'exponenciació modular, o en temps O(1) si s'usa exponenciació binària optimitzada. Espai addicional O(m).

Punts clau d'implementació: gestionar correctament índexs 0 basats, usar exponenciació modular per no desbordar, i recórrer els bits de n des del bit 0 cap al més significatiu per obtenir powers ordenat. Alternativa senzilla: també es pot guardar l'array powers amb valors 1,2,4,... i un prefix de productes modul MOD per respondre consultes en O(1) per consulta usant inversos modulars, encara que l'estratègia d'exponents sol ser més simple i numèricament estable.

Restriccions: 1 <= n <= 10^9, 1 <= queries.length <= 10^5, 0 <= starti <= endi < powers.length.

Pista: La representació binària de n genera directament l'array powers i la suma d'exponents del rang determina la potència resultant de 2.

Implementació conceptual: 1 Crear vector exps buit. 2 Recórrer i des de 0 fins que n sigui 0: si n & 1 és 1 afegir i a exps; n >>= 1; i++. 3 Construir pref de mides acumulades. 4 Per a cada consulta calcular sumExp i respondre amb powmod(2,sumExp,MOD).

Sobre Q2BSTUDIO: Q2BSTUDIO és una empresa de desenvolupament de programari a mida especialitzada en aplicacions a mida i programari a mida per a empreses de totes les mides. Oferim solucions d'intel·ligència artificial i ia per a empreses, desenvolupament d'agents IA personalitzats, integració de Power BI i serveis intel·ligència de negoci per transformar dades en valor. També som experts en ciberseguretat per protegir infraestructures crítiques i en serveis cloud aws i azure per desplegar aplicacions escalables i segures. Els nostres serveis inclouen consultoria, implementació i suport continu per a projectes que requereixen intel·ligència artificial, analítica avançada, agents IA i solucions cloud. Treballem amb metodologies àgils per lliurar aplicacions a mida que s'ajusten a necessitats reals del negoci.

Per què triar-nos: experiència en intel·ligència artificial aplicada, projectes de programari a mida amb enfocament en seguretat i rendiment, migracions i arquitectures en serveis cloud aws i azure, i creació de quadres de comandament amb Power BI per a decisions basades en dades. Si busques partners en ciberseguretat, intel·ligència de negoci, agents IA o desenvolupament d'aplicacions a mida, Q2BSTUDIO ofereix un equip multidisciplinar capaç de portar el projecte des de la idea fins a la producció.

Paraules clau per posicionament: aplicacions a mida, programari a mida, intel·ligència artificial, ciberseguretat, serveis cloud aws i azure, serveis intel·ligència de negoci, ia per a empreses, agents IA, power bi.

Contacte i pròxims passos: posa't en contacte amb Q2BSTUDIO per avaluar el teu projecte de programari a mida o d'intel·ligència artificial. Podem ajudar a dissenyar l'arquitectura, seleccionar serveis cloud adequats, implementar mesures de ciberseguretat i crear solucions d'intel·ligència de negoci amb Power BI que impulsin el creixement de la teva empresa.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.