摘要:
线段树。支持区间加、区间乘、区间查询和。标记下移还有取模要注意。varn,p,q,i,s,t:longint;a:int64;num,n1,n2,n3:array[0..500000] of int64;procedure build(o,l,r:longint);var m,i:longint;b... 阅读全文
摘要:
DP+斜率优化就不再多说了。。。还是基础的斜率优化。。。varn,i,s,t,a,b,c,xa,xb,xc:longint;num,dp,xl,sum,s2:array[0..1000005] of int64;beginread(n,xa,xb,xc);for i:=1 to n do read(... 阅读全文
摘要:
DP+斜率优化DP方程为dp[i]:=max(dp[j]+sum[i]-sum[j]+i-j-1)(j ((dp[b]-dp[a]+sum[b]*sum[b]-sum[a]*sum[a])/(sum[b]-sum[a])) then begin xl[s]:=0;inc(s); end ... 阅读全文
摘要:
DP+斜率优化。DP方程为dp[i]:=max(dp[j]+(p[k]*(x[i]-x[k]))+c[i]) (js do if (y[i]-y[dd[t]])/(x[i]-x[dd[t]])<(y[dd[t]]-y[dd[t-1]])/(x[dd[t]]-x[dd[t-1]]) then b... 阅读全文
摘要:
做一棵线段树,支持区间查询最大值和单点修改。先开一个能容纳200000个数的线段树,初始化全部数为0。查询的时候只需要找max(m-l+1,m),其中m是此时数列的长度。添加的时候就直接修改第m+1个数,然后m++。varn,d,t,i,a,m:longint;c:char;num:array[1.... 阅读全文