codeforces669E【CDQ分治】

这篇博客详细介绍了如何解决Codeforces 669E问题,采用经典的CDQ分治策略。博主强调了在处理过程中需要考虑操作编号、时间及权值,并指出虽然可以使用树套树的方法,但CDQ分治依然直观易懂。文章提供了路人使用的树套树代码示例以及博主自己的CDQ分治实现。
摘要由CSDN通过智能技术生成

地址
很模板的CDQ分治题。
需要考虑操作编号,操作时间,操作权值。
对于询问要找同时小于编号和时间的操作才影响当前的询问。然后搞一下就行了。。
甚至CDQ分治不用也行,树套树。。。
还是很好理解的,外层权值,内层时间。
cf上路人的有点NB的树套树代码

map<int, map<int, int>> tree;
 
void update(int x, int a, int delta) {
   
    for (int i = x; i <= (int)1e9 + 15; i += i & -i) {
   
        tree[a][i] += delta;
    }
}
 
int query(int x, int a) {
   
    int ans = 0;
    for (int i = x; i > 0; i -= i & -i) {
   
        ans += tree[a][i];
    }
    return ans;
}

----------------------------------------------------------------------

if (t == 1) {
   
   update(x, a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值