https://www.luogu.org/problemnew/show/P2184

区间修改时只需修改区间端点的numl或numr值
区间查询x-y只需用1-y的numr - 1-(x - 1)的numl值
线段树 单点修改 + 区间查询

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath> using namespace std;
const int N = 1e5 + ; #define yxy getchar()
#define lson jd << 1
#define rson jd << 1 | 1 #define RR freopen("gg.in", "r", stdin) int n, Ty, Ans, Ans1, Ans2;
int Numl[N << ], Numr[N << ]; inline int read() {
int x = ; char c = yxy;
while(c < '' || c > '') c = yxy;
while(c >= '' && c <= '') x = x * + c - '', c = yxy;
return x;
} void Poi_G(int l, int r, int jd, int x, int how) {
if(l == r) {
if(!how) Numl[jd] ++;
else Numr[jd] ++;
return ;
}
int mid = (l + r) >> ;
if(x <= mid) Poi_G(l, mid, lson, x, how);
else Poi_G(mid + , r, rson, x, how);
Numl[jd] = Numl[lson] + Numl[rson];
Numr[jd] = Numr[lson] + Numr[rson];
} void Sec_A(int l, int r, int jd, int x, int y, int how) {
if(x <= l && r <= y) {
if(!how) Ans += Numl[jd];
else Ans += Numr[jd];
return ;
}
int mid = (l + r) >> ;
if(x <= mid) Sec_A(l, mid, lson, x, y, how);
if(y > mid) Sec_A(mid + , r, rson, x, y, how);
} int main() {
n = read();
Ty = read();
while(Ty --) {
int opt = read(), x = read(), y = read();
if(opt == ) {
Poi_G(, n, , x, );
Poi_G(, n, , y, );
} else {
Ans = ;
Sec_A(, n, , , y, ); Ans1 = Ans; Ans = ;
Sec_A(, n, , , x - , ); Ans2 = Ans;
cout << Ans1 - Ans2 << "\n";
}
}
return ;
}

[Luogu] 贪婪大陆的更多相关文章

  1. COGS1008. 贪婪大陆[树状数组 模型转换]

    1008. 贪婪大陆 ★★   输入文件:greedisland.in   输出文件:greedisland.out   简单对比时间限制:1 s   内存限制:128 MB 试题四:贪婪大陆  [题 ...

  2. P2184 贪婪大陆

    P2184 贪婪大陆   题目背景 面对蚂蚁们的疯狂进攻,小FF的Tower defence宣告失败……人类被蚂蚁们逼到了Greed Island上的一个海湾.现在,小FF的后方是一望无际的大海, 前 ...

  3. Cogs 1008. 贪婪大陆(树状数组)

    贪婪大陆 难度等级 ★★ 时间限制 1000 ms (1 s) 内存限制 128 MB 测试数据 10 简单对比 输入文件:greedisland.in 输出文件:greedisland.out 简单 ...

  4. 洛谷 P2184 贪婪大陆 解题报告

    P2184 贪婪大陆 题目背景 面对蚂蚁们的疯狂进攻,小\(FF\)的\(Tower\) \(defence\)宣告失败--人类被蚂蚁们逼到了\(Greed\) \(Island\)上的一个海湾.现在 ...

  5. AC日记——贪婪大陆 洛谷 P2184

    贪婪大陆 思路: 树状数组: 跪烂.. 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 int ...

  6. 【洛谷P2184】贪婪大陆

    贪婪大陆 题目链接 对于一个区间[l,r],右端点在l左边即[1,l-1]中的区间与区间[l,r]没有交集, 左端点在r右边即[r,n]中的区间与区间[l,r]没有交集, 其余区间必与[l,r]有交集 ...

  7. cogs——1008. 贪婪大陆(清华巨佬代码)——树状数组

    1008. 贪婪大陆 ★★   输入文件:greedisland.in   输出文件:greedisland.out   简单对比时间限制:1 s   内存限制:128 MB 试题四:贪婪大陆  [题 ...

  8. luoguP2184 贪婪大陆 题解(树状数组)

    P2184 贪婪大陆  题目 其实很容易理解就是询问一段区间内有多少段不同的区间 然后再仔细思索一下会发现: 1.只要一个区间的开头在一个节点i的左边,那么这个区间包含在区间1~i中. 2.只要一个区 ...

  9. luogu题解 P2184 【贪婪大陆】

    题目链接: https://www.luogu.org/problemnew/show/P2184 思路: 首先我想吐槽一下为什么现有题解中的做法都是一样的,而且还比较难以理解; 我就讲下我的做法,本 ...

随机推荐

  1. 『Django』第N+1节: Django自带的认证系统 - auth

    个人网站: lipeiguan.top 以后会慢慢转移到个人网站, 欢迎大家收藏^ . ^ 写在前面 我们在开发一个网站的时候, 经常需要实现网站的用户系统. 这个时候我们需要实现用户注册.用户登录. ...

  2. 为什么用JS取不到cookie的值?解决方法如下!

    注意:cookie是基于域名来储存的.要放到测试服务器上或者本地localhost服务器上才会生效.cookie具有不同域名下储存不可共享的特性.单纯的本地一个html页面打开是无效的. 明明在浏览中 ...

  3. Luogu4081 USACO17DEC Standing Out from the Herd(广义后缀自动机)

    建出广义SAM,通过parent树对每个节点求出其是否仅被一个子串包含及被哪个包含. 写了无数个sam板子题一点意思都没啊 #include<bits/stdc++.h> using na ...

  4. 去除空格函数trim

    实际查询中,经常存在多个tables,需要统一查询比如segments总大小或者索引或者主键等,我们得到大量的tables表名称,但是SQL查询,每次需要手工添加双引号,去除空格很麻烦. 可以通过文本 ...

  5. idea jetty:run 启动

    1.首先pom    文件 <!-- jetty插件 --> <plugin> <groupId>org.mortbay.jetty</groupId> ...

  6. Spring Boot 使用 @Scheduled 注解创建定时任务

    在项目开发中我们经常需要一些定时任务来处理一些特殊的任务,比如定时检查订单的状态.定时同步数据等等. 在 Spring Boot 中使用 @Scheduled 注解创建定时任务非常简单,只需要两步操作 ...

  7. ROUTE: route addition failed

    ROUTE: route addition failed 1)报FlushIpNetTable failed on interface错误 应对:以管理员身份运行OpenV-P-N 2)报Warnin ...

  8. ES6 Proise 简单理解

    Promise 这是ES6中增加的一个处理异步的对象. 传统变成写异步函数的时候,经常会遇到回调套回调: Promise 是异步编程的一种解决方案,比传统的解决方案 -----回调函数和事件----- ...

  9. vue使用layer主动关闭弹窗

    关闭当前框的弹出层 layer.close(layer.index); 刷新父层 parent.location.reload(); // 父页面刷新 关闭iframe 弹出的全屏层 var inde ...

  10. windows找不到头文件的问题

    windows系统中,设置好了环境变量,就可以在cmd下直接执行文件,但是 特别是在c语言或者c++程序中,include头文件的问题,如果找不到,就考虑是不是文件放错地方了. windows上编译c ...