WC2018集训 吉老师的军训练

#include<bits/stdc++.h>
#define RG register
#define IL inline
#define _ 200005
#define X 100000000
#define ll unsigned long long
using namespace std; IL int gi(){
RG int data = 0 , m = 1; RG char ch = 0;
while(ch != '-' && (ch<'0' || ch > '9')) ch = getchar();
if(ch == '-'){m = 0; ch = getchar();}
while(ch>='0' && ch<='9'){data = (data<<1) + (data<<3) + ch - '0' ; ch = getchar();}
return (m) ? data : -data ;
} struct HJT{int ls,rs; ll sumK,sumB,tagK,tagB;}t[40*_] ;
struct YCB{
int l,r,ps; ll dk,db;
bool operator < (const YCB &B) const{
return ps < B.ps ;
}
}q[_<<1];
int tot,n,m,Q,X1,X2,Y1,Y2,d,xx,yy,Y[_],rt[_],oo,yoy; ll S,ans ; void Update(int &o,ll l,ll r,int ql,int qr,ll dk,ll db){
t[++oo] = t[o]; o = oo ;
if(ql <= l && r <= qr){
t[o].tagK += dk ; t[o].tagB += db ;
t[o].sumK += 1ll * (r - l + 1) * dk ;
t[o].sumB += 1ll * (r - l + 1) * db ;
return ;
}RG int mid = (l + r) >> 1;
if(ql <= mid) Update(t[o].ls , l , mid , ql , qr , dk , db) ;
if(qr > mid) Update(t[o].rs , mid + 1 , r , ql , qr , dk , db) ;
t[o].sumK = t[t[o].ls].sumK + t[t[o].rs].sumK + (r-l+1) * t[o].tagK ;
t[o].sumB = t[t[o].ls].sumB + t[t[o].rs].sumB + (r-l+1) * t[o].tagB ;
}
ll Query(int &o,int l,int r,int ql,int qr,ll x){
if(!o) return 0;
if(ql == l && r == qr) return 1ll * t[o].sumK * x + t[o].sumB ;
RG int mid = (l + r) >> 1;
RG ll Data = (qr-ql+1) * ( t[o].tagK * x + t[o].tagB );
if(qr <= mid) return Data + Query(t[o].ls,l,mid,ql,qr,x) ;
else if(ql > mid) return Data + Query(t[o].rs,mid+1,r,ql,qr,x) ;
else return
Data +
Query(t[o].ls,l,mid,ql,mid,x) + Query(t[o].rs,mid+1,r,mid+1,qr,x) ;
return 0;
} int main(){
freopen("c.in","r",stdin) ;
freopen("c.out","w",stdout) ;
n = gi(); m = gi(); d = gi(); Q = gi();
for(RG int i = 1; i <= d; i ++){
X1 = gi(); X2 = gi(); Y1 = gi(); Y2 = gi(); S = gi();
q[++tot] = (YCB){X1 , X2 , Y1 , S , 1ll*S*(1-Y1)} ;
q[++tot] = (YCB){X1 , X2 , Y2+1 , -S , 1ll*S*Y2 } ;
Y[++yoy] = Y1 ; Y[++yoy] = Y2 + 1;
}
sort(q + 1 , q + tot + 1) ;
sort(Y + 1 , Y + yoy + 1) ;
rt[0] = ++ oo ;
for(RG int i = 1; i <= tot; i ++)
rt[i] = rt[i-1] , Update(rt[i] , 1 , X , q[i].l , q[i].r , q[i].dk , q[i].db) ;
ans = 0;
while(Q --){
xx = gi(); yy = gi();
X1 = ans % n + 1; X2 = (ans + xx) % n + 1 ;
Y1 = ans % m + 1; Y2 = (ans + yy) % m + 1 ;
if(X1 > X2) swap(X1 , X2) ;
if(Y1 > Y2) swap(Y1 , Y2) ;
xx = upper_bound(Y + 1 , Y + yoy + 1 , Y1 - 1) - Y - 1 ;
yy = upper_bound(Y + 1 , Y + yoy + 1 , Y2) - Y - 1 ;
ans = 0;
ans = ans + Query(rt[yy] , 1 , X , X1 , X2 , Y2) ;
ans = ans - Query(rt[xx] , 1 , X , X1 , X2 , Y1-1) ;
printf("%llu",ans) ; puts("");
}return 0;
}

WC2018集训 吉老师的军训练的更多相关文章

  1. 【集训第三天·疯狂训练】哦,顺带学习了manacher

    虽然说是疯狂训练吧,但是也没写多少题,就把伸展树的操作熟悉了一下,ac了5个题目. 一整天没啥可吐槽的,除了昨天在机房打游戏的某位朋友翻车后和教练谈了谈心2333 说题吧.. 1.BZOJ1208 H ...

  2. 2018HPU暑期集训第四次积分训练赛 K - 方框 题解(图形打印)

    思路分析:题目已经明确透露了这道题的解法:就是画框.当 输入的边长  的话,就表示可以在内层继续嵌套一个方框.废话就不多说了,直接上代码吧! 代码如下: #include <iostream&g ...

  3. PTA天梯赛训练题L1-064:估值一亿的AI核心代码(字符串模拟)

    Update:smz说regex秒过Orz,yzd记在这里了. 听说今年天梯赛有个烦人的模拟,我便被队友逼着试做一下……一发15,二发20.记一记,要不然枉费我写这么久…… 自己还是代码能力太菜了,校 ...

  4. 我的OI生涯 第五章

    我的OI生涯 第五章 千古诗才,蓬莱文章建安骨 一身傲骨,青莲居士谪仙人 李白追月逆江河 包黑斩龙顺民心 豪气压群雄,能使力士脱靴,贵妃捧砚; 仙才媲众美,不让参军俊逸,开府清新 我辈此中惟饮酒 先生 ...

  5. 一生伏首拜阳明------<明朝那些事儿>

    一生伏首拜阳明. 王守仁,字伯安,别号阳明. 成化八年(1472),王守仁出生在浙江余姚,大凡成大事者往往出身贫寒,小小年纪就要上山砍柴,下海捞鱼,家里还有几个生病的亲属,每日以泪洗面.这差不多也是惯 ...

  6. Before NOIP 2018

    目录 总结 刷题 2018 - 9 - 24 2018 - 9 - 25 2018 - 9 - 26 2018 - 9 - 27 2018 - 9 - 28 2018 - 9 - 29 2018 - ...

  7. PKUWC 2019 自闭记

    PKUWC 2019 自闭记 Day -1 考前天天在隔壁的物竞教室划水(雀魂,能和吉老师一起玩的游戏都是好游戏),没有做题. Day 0 早上8:16的高铁,到广州南居然要6个小时...不知道福州和 ...

  8. NOI2019 游记

    day-1 广二真好看QAQ (要是我也能在这里读书就好了) 提供的餐饮好评QAQ 发现室友是雅礼集训时候的室友,衡水小姐姐zyn. 但是寝室没有网没有信号没有桌子真的不良心啊...... 发现小卖部 ...

  9. 2019ccpc哈尔滨打铜记

    小学生日记: 2019.10.13,哈尔滨,打了个铜 开头 先说结论,这次失败,我的锅70%,sdl的锅5%,ykh25% Day0 周五, 我们队出现了奇怪的厄运上身 首先是我中途在飞机上数据线突然 ...

随机推荐

  1. 使用Google Cloud Messaging (GCM),PHP 开发Android Push Notifications (安卓推送通知)

    什么是GCM? Google Cloud  Messaging (GCM) 是Google提供的一个服务,用来从服务端向安卓设备发送推送通知. GCM分为客户端和服务端开发. 这里我们只介绍服务端开发 ...

  2. Windows Server 2008 R2 安装域

    在Windows Server 2008 R2里面安装域. 1.首先在"服务"里面添加"角色": 2.选择对应的域角色 3.安装完成后要启动配置向导 4.选择新 ...

  3. ogg的安装配置 配置双向同步(含DDL)

    第一部分 先配置单向同步(含DDL) 一 源端安装GoldenGate 创建用户 创建目录 mkdir -p /opt/ogg chmod -R 777 /opt/ogg chown -R oracl ...

  4. Unity AssetBundle工作流

    一.创建AssetBundle 1.在资源的Inspector视图下有一个AssetBundle的UI,第一个选项表示AssetBundle名称,第二个用于设置AssetBundle Variant, ...

  5. 通过 Python_Faker 生成测试数据

    通过 Python_Faker 生成测试数据 一.介绍 在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,你不可能通过手工来生成(最傻的方法)可能 ...

  6. js写的数码时钟,在“最小化”浏览器 或者 “切换网页”是动画效果好像不对

    一.问题 在“最小化”浏览器 或者 “切换网页”是动画效果不对,不知道哪里出了问题???是不是”最小化“时网页定时器关掉了,还是其他什么原因啊 ???? 二.HTML代码如下 <div id=& ...

  7. String和StringBuffer以及StringBuilder的区别

    今天在读<java编程思想>的时间,在看到String和StringBuffer以及StringBuffer这三个类的时间,做一个随笔小结,为自己的面试做好准备! 一:String,Str ...

  8. visionpro9.0破解

    visionpro9.0软件下载 提供一个visionpro9.0视频教程学习网站:点击下面链接进入. ------------------------Halcon,Visionpro高清视频教程,点 ...

  9. [leetcode-663-Equal Tree Partition]

    Given a binary tree with n nodes, your task is to check if it's possible to partition the tree to tw ...

  10. android4.3 Bluetooth分析之扫描分析

    android4.3中引入了蓝牙低能耗le(low energy),相应的也有一些方法/类.不过代码里,并没有找到初始调用的地方.所以这里还是先只分析下bt普通的扫描流程(类似android 4.2) ...