掌握雷电将军的“脚法”秘籍:不止于力量,更是速度与艺术的结合

核心内容摘要

18HD求求19HD:一场跨越时空的视觉盛宴,即将颠覆你的感官体验
海角社区在线:连接你我,点亮生活的美好时光

浪潮之上,律动之巅:水立方,一场感官的盛宴

题目描述一个可重复数字集合 S 的神秘数定义为最小的不能被 S 的子集的和表示的正整数。

例如 S{1,1,1,4,13}有11211311144541641174111。

8 无法表示为集合 S 的子集的和故集合 S 的神秘数为 8。

现给定长度为 n 的正整数序列 am 次询问每次询问包含两个参数 l,r你需要求出由 al​,al1​,⋯,ar​ 所组成的可重集合的神秘数。

输入格式第一行一个整数 n表示数字个数。

第二行 n 个正整数从 1 编号。

第三行一个整数 m表示询问个数。

输出格式对于每个询问输出一行对应的答案。

输入输出样例输入 #1复制5 1 2 4 9 10 5 1 1 1 2 1 3 1 4 1 5输出 #1复制2 4 8 8 8说明/提示对于 100% 的数据点1≤n,m≤105∑a≤109。

代码实现#includebits/stdc.h using namespace std; #define il inline #define rg register #define ll long long il int rd() { int res0,k1;char chgetchar(); while(ch9||ch

{if(ch-)k-1;chgetchar();} while(ch9ch

{resres*10ch-48;chgetchar();} return res*k; } il void wt(int x) { if(x

return putchar(-),wt(-x),void(); if(x

return putchar(x

,void(); return wt(x/

,wt(x%

,void(); } int lg[100005], a[100005], n, m; struct st { int st[100005][17]; ll sum[100005]; void init(int llim, int rlim) { sum[0]0; for(rg int i1;in;i) if(a[i]llima[i]rlim)st[i][0]a[i],sum[i]sum[i-1]a[i]; else st[i][0]0x3f3f3f3f,sum[i]sum[i-1]; for(rg int j1;(1j)n;j) for(rg int i1;i(1j)n1;i) st[i][j]min(st[i][j-1],st[i(1(j-

)][j-1]); } ll qry_min(int l, int r) { int dlg[r-l]; return min(st[l][d],st[r-(1d)1][d]); } ll qry_sum(int l, int r) { return sum[r]-sum[l-1]; } } b[30]; signed main() { nrd(); for(rg int i1;in;i) a[i]rd(); mrd(); for(rg int i2;in;i) lg[i]lg[i1]1; b[0].init(1,

; for(rg int i1,t2;i29;i,t1ll) b[i].init(t,tt-

; for(rg int i1,l,r;im;i) { lrd();rrd(); ll ans0; int t0; while(t

{ if(ans1llmin(b[t].qry_min(l,r),(1ll(t

)-

) break; ansb[t].qry_sum(l,r); t; } wt(ans1ll); puts(); } return 0; }

糖心vLog-糖心应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123