记录下自己写错的地方吧

1. 区间可能有重复

2. 没有出现的坐标也要计入version (因为询问里可能会有)

 #include <bits/stdc++.h>
using namespace std; int n,m,t1,t2,t3,t4,_s[],_e[],_p[],ind,ch[][];
int a[],root[],rcnt,ver[],maxn,_list[],flag;
long long s[]; struct Item {
int pos,typ,key;
void init(int a,int b,int c) {
pos=a; typ=b; key=c;
}
} item[]; int cmp(const Item &a, const Item &b) {
return a.pos<b.pos;
} void modify(int sp,int &p,int l,int r,int pos,int val,int k) {
if(p==||p==sp) p=++ind, ch[p][]=ch[sp][], ch[p][]=ch[sp][], a[p]=a[sp], s[p]=s[sp];
if(l==r) {
if(k==) a[p]+=, s[p]+=(long long)_list[val];
else a[p]-=, s[p]-=(long long)_list[val];
}
else{
if(val<=(l+r)/) modify(ch[sp][],ch[p][],l,(l+r)/,pos,val,k);
else modify(ch[sp][],ch[p][],(l+r)/+,r,pos,val,k);
a[p]=a[ch[p][]]+a[ch[p][]];
s[p]=s[ch[p][]]+s[ch[p][]];
}
} int queryA(int p,int l,int r,int ql,int qr) {
if(l>qr||r<ql) return ;
if(l>=ql && r<=qr) return a[p];
return queryA(ch[p][],l,(l+r)/,ql,qr)+queryA(ch[p][],(l+r)/+,r,ql,qr);
} long long queryS(int p,int l,int r,int ql,int qr) {
if(l>qr||r<ql) return ;
if(l>=ql && r<=qr) return s[p];
return queryS(ch[p][],l,(l+r)/,ql,qr)+queryS(ch[p][],(l+r)/+,r,ql,qr);
} int kth(int p,int l,int r,int k) {
if(l==r) {
if(a[p]) flag=(k-a[p])*(s[p]/a[p]);
else flag=;
return l;
}
if(k<=a[ch[p][]]) return kth(ch[p][],l,(l+r)/,k);
else return kth(ch[p][],(l+r)/+,r,k-a[ch[p][]]);
} int main(){
long long pre=;
ios::sync_with_stdio(false);
cin>>n>>m; maxn=n;
for(int i=;i<=n;i++) cin>>_s[i]>>_e[i]>>_p[i],
item[i*-].init(_s[i],,_p[i]),
item[i*].init(_e[i]+,,_p[i]),
_list[i]=_p[i];
sort(item+,item+*n+,cmp);
sort(_list+,_list+n+);
unique(_list+,_list+n+);
for(int i=;i<=*n;i++) {
if(item[i].pos-item[i-].pos) for(int j=item[i-].pos;j<item[i].pos;j++) ver[j]=i-;
modify(root[i-],root[i],,maxn,item[i].pos,lower_bound(_list+,_list+n+,item[i].key)-_list,item[i].typ?:-);
}
ver[item[*n].pos]=*n;
for(int i=;i<=m;i++) {
cin>>t1>>t2>>t3>>t4;
t2=+((long long)t2*(long long)pre+(long long)t3)%(long long)t4;
t3=kth(root[ver[t1]],,maxn,t2),
cout<<(pre=(queryS(root[ver[t1]],,maxn,,t3)+flag))<<endl;
}
}

最新文章

  1. Ajax入门(二)
  2. 个人JS零碎知识整理
  3. SQL Server 2014如何提升非在线的在线操作
  4. vim IDE平台-打造属于自己的配置
  5. mongoDb(2)聚合
  6. Orchard Platform v1.7.2 发布
  7. 【Network】一张图看懂 Reactor 与 Proactor 模型的区别
  8. .Net码农学Android---五分钟了解布局
  9. BBSXP最新漏洞 简单注入检測 万能password
  10. java技术栈:一、java编程语言概述
  11. iOS Quartz2D画图
  12. HttpResponseMessage获取请求响应体内容
  13. [LeetCode] Reverse Pairs 翻转对
  14. 小技巧,把Markdown文本发布到微信公众号文章
  15. 第三周 数据分析之概要 Pandas库数据特征分析
  16. JQ attr prop 区别
  17. PHP字符串函数运用小案例
  18. 【BZOJ1047】[HAOI2007]理想的正方形(单调队列,动态规划)
  19. Bus Blaster v4 design overview
  20. ABBYY FineReader操作技巧

热门文章

  1. The Ether 靶场
  2. vue及vant框架,多语言配置
  3. C# WPF简况(2/3)
  4. 信号处理之DFT、IDFT
  5. Linux下的python3,virtualenv,Mysql、nginx、redis等常用服务安装配置
  6. 「BZOJ3065」带插入区间K小值 [分块]
  7. Selenium实战(四)——unittest单元测试2(断言方法+discover()多测试用例的执行)
  8. NFS部署
  9. C# SQLITE 使用文档
  10. 在系统下使用命令安装gnome图形界面程序