WC2018集训 吉老师的军训练

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;
}

原文地址:https://www.cnblogs.com/Guess2/p/8708446.html

时间: 2024-08-07 04:50:25

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

18.12.16 DSA 吉老师的汉诺塔

描述 吉老师的面前出现了一座汉诺塔!但是这个汉诺塔好像坏了,盘子并不是按照从大到小的顺序排列的……吉老师非常不开心,立志要把这个汉诺塔修好!吉老师每分钟可以交换挨在一起的两个盘子,吉老师希望用的时间最短,吉老师不会啊,你能帮帮吉老师吗? 输入 第一行1个整数N.第二行为N 个非负整数,按从下到上的顺序给出每个盘子的大小.对于50%的数据,2<=N<=1000.对于100%的数据,2<=N<=100000.输出一个整数,表示最少需要交换多少次相邻的盘子才能将盘子递减排列.同样大小的盘

【集训第三天&#183;疯狂训练】哦,顺带学习了manacher

虽然说是疯狂训练吧,但是也没写多少题,就把伸展树的操作熟悉了一下,ac了5个题目. 一整天没啥可吐槽的,除了昨天在机房打游戏的某位朋友翻车后和教练谈了谈心2333 说题吧.. 1.BZOJ1208 HNOI2004 宠物收养所 这个题思路很简单,当做模板题打,在模板题中也算是简单的了,涉及操作:前驱,后继,插入,删除..输入进来就插入,领养走就删除,并没有什么可说的.加上一个标记表示现在树上表示的是宠物还是人. 另外听说可以用set做,但是我并不会set(???set都不会吃屎吧). CODE:

WC2018

这是一个noip没到400,WCcu滚粗的蒟蒻的游记 $day1-day5$ 这几天本质上没什么区别,都是听课,大部分时间是听不懂或不想听,于是我的炉石水平提高了不少.我觉得最实用的是cjk讲的圆方树,大概是因为我还是能听得懂.其他的像电音之王,毛爷爷,杜老师的课大多处于掉线.吉老师的PA选讲感觉也还不错,后来掉线.听课的时候很多时间都在写题,不过好像没做几道bzoj1038debug了几个小时还是不行. 宿舍并不是很好,洗澡的地方简直反人类.床板一翻身就响,并且似乎还有白蚁出没.网络也十分的差

我的OI生涯 第五章

千古诗才,蓬莱文章建安骨 一身傲骨,青莲居士谪仙人 李白追月逆江河 包黑斩龙顺民心 豪气压群雄,能使力士脱靴,贵妃捧砚; 仙才媲众美,不让参军俊逸,开府清新 我辈此中惟饮酒 先生在上莫题诗 酒入豪肠 七分化作月光, 剩下的三分 啸成了剑气, 绣口一吐 就是半个盛唐. 纪念余光中老师. 衢州的第四天,我参加了人生中的第一场acm. 也不知怎的本校没有队伍肯要我,而外校都是省一的浙江巨老们,我也没好意思. 最后,老东,王洋和我组成了俯卧撑队. 下面纪念一下我校acm队伍名(排名不分先后) 1 有一个

李雪:女生也能当编程高手

来源:http://burl.cc/haGmN 在强手如林的编程大赛中夺冠,被戏称为代码界的“女神”李雪:女生也能当编程高手 本报记者 原春琳  <中国青年报 >(2013年07月01日     06版) 历时约两个月的第二届微软“编程之美全国挑战赛”于近日落下帷幕.从来自清华.北大等各大高校的1.3万多名选手 中杀出重围,再到最后60人的巅峰对决,出乎所有人的意料,在这个男性向来占据绝对优势的领域,最后夺得冠军的居然是一名女生——北京邮电大学(以下简称 北邮)大三学生李雪. 此消息一经公布就

2016年的总结

距离大一入学已经经过了两年半的时间,离我第一次接触C语言也过去了两年半.向王瑞洲(以下简称GodWang)请教字符串的读入.01背包的情景还历历在目,弹指一挥间,如今已是大三. 在高考结束的时候,莫名其妙的只想填计算机类的专业,也许是出于对编程的好奇,又或许是觉得会编程的人特别帅.在纠结了很久是选择计算机还是软件工程之后,我决定选择软件工程,因为我对硬件方面没有太大的兴趣.就这样,我和爸爸妈妈将全国带有软件工程专业的学校都找了出来,寻找自己能去的地方.最后,我来到了这里——浙江财经大学信息学院.

群雄逐鹿下,2000亿元体育培训蓝海市场现在怎么样了?

图片来源:pixabay 近日,四川双马(000935)以28亿元对价将原有水泥主业全部置出,同时收购华北最大青少年足球培训机构国奥越野俱乐部,借此实现主业变更,并成功转型成为国内足球青训第一股,入局体育培训领域. 这很抢眼却仿佛又在情理之中,在整个体育产业链上,体育培训行业无疑被认为是尚待开发的新蓝海,<体育发展“十三五”规划>中明确提出,到2020年,全国体育产业总规模将超过3万亿元,体育服务业占比将超过30%,网络数据显示,体育培训行业大概占体育服务行业比重的20%.由此推算,到2020

敏捷而生,适者生存,看从小弟到大佬的如何跨越网工面试

胜利会迟到但绝不会缺席!当再次收到面试邮件的时候一颗悬了一年的心终于尘埃落定.起初我只是一条没有梦想的咸鱼,一直不知道自己喜欢什么该干什么,每天和室友们一起打打游戏,逛逛酒吧,跳跳舞小日子过得也很舒心,直到临近毕业之际都不知何去何从,本来直接想跟着校招走一步算一步了.正儿八经的咸鱼.但是我的大学中遇到一个好领路人--同一屋檐下共处四年的室友杨廷宇.我的HCIE追求之旅就是他带我开始的.廷宇早在大二的时候就开始看CCNA,还买了一本书不停的啃,后来进入大三他突然决定想考HCIE,问我要不要一起.我

Self-examination2

参赛总结 从暑假到现在,算是参加了两场现场赛,加上青理工的.青理工算是一场挺水的也不是很重要的比赛,但是我们队成为唯一打铁的队伍.这场比赛我没做出什么贡献,而且还拖了后腿.那道简单的字符串的题他们交给我,但是我看了半天都没想出什么解法.字符串我就会套个KMP和循环节,这个会不会是什么我不会的算法,翻我的模板书翻了半天,什么都找不到.最后5分钟是lxq发现的解法,然后最后一发没交上,返回的DELYES,成功打铁.比赛后是真自闭,感觉自己特别菜,就会套个模板.那道题其实知道KMP与循环节就够了,我却