: Drink coffee
时间限制: Sec 内存限制: MiB
提交: 答案正确: 提交 状态 讨论区 题目描述
为了在上课时保持清醒,凯伦需要一些咖啡。咖啡爱好者凯伦想知道最佳的温度来冲煮完美的咖啡。因此,她花了一些时间阅读几本食谱,其中包括广受好评的“咖啡的艺术”。
她知道有n个食谱,其中第i个食谱建议应当在li和ri度之间冲煮以达到最佳的味道。凯伦认为如果至少k个食谱推荐某个温度,那么那个温度是可以接受的。
凯伦的性格比较多变,因此她会问q个问题,对于每一个问题,她会给出一个温度区间[a,b],你要告诉她有多少可接受的整数温度在这个范围内。 输入
第一行输入包含三个整数,n,k(≤k≤n≤)和q(≤q≤),如题中所描述。
接下来n行描述每一个食谱,具体来说,其中的第i行包含两个整数li和ri(≤li≤ri≤),描述第i个食谱建议咖啡在li和ri度之间进行冲煮(包括端值)。
接下来q行为q个询问。这些行中的每一行都包含a和b,(≤a≤b≤),表示她想知道a和b度之间的可接受的整数温度的数量,包括a和b。
输出
对于每个询问,输出一个答案。 样例输入
复制 样例输出
复制 提示

大致思路:

  差分 + 二分索引树。

 using namespace std;
#define inf 0x3f3f3f3f
const double pi=acos(-1.0);
#define ll long long
#define N 200008
#define lson root<<1
#define rson root<<1|1
int a[N];//统计个数
int bit[N];
int lowbit(int x){
return x & -x; //或者可以return x&(x-1);
}
int sum(int x){ //计算前x项的和
int s=;
while(x>){
s+=bit[x];
x-=lowbit(x);
}
return s;
}
//add(),每次添加的范围至少要覆盖全部的范围!
void add(int x,int val,int n){ //在x位置上加上val, 更改二叉索引树上的和 ,只能这么添加数
while(x<=n){
bit[x]+=val;
x+=lowbit(x);
}
}
int main(){ int n,k,q; //差分+树状数组
while(scanf("%d%d%d",&n,&k,&q)!=EOF){
memset(a,,sizeof(a));
memset(bit,,sizeof(bit)); int li,ri,maxn=-;
for(int i=;i<=n;i++){
scanf("%d%d",&li,&ri);
a[li]++,a[ri+]--;
maxn=max(maxn,ri);
} for(int i=;i<=maxn+;i++){
a[i]+=a[i-];
if(a[i]>=k)add(i,,N-);
} while(q--){
scanf("%d%d",&li,&ri);
printf("%d\n",sum(ri)-sum(li-));
} } return ;
}

(头文件私奔啦!!)

ZZNU-OJ-2098 : Drink coffee【线段树合并区间或者 差分 + 二分索引树】的更多相关文章

  1. ZZNU 2098 Drink coffee(差分+树状数组)

    题目链接:http://acm.hi-54.com/problem.php?pid=2098 2098 : Drink coffee 时间限制:1 Sec 内存限制:256 MiB 提交:32 答案正 ...

  2. P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并 (树上差分+线段树合并)

    显然的树上差分问题,最后要我们求每个点数量最多的物品,考虑对每个点建议线段树,查询子树时将线段树合并可以得到答案. 用动态开点的方式建立线段树,注意离散化. 1 #include<bits/st ...

  3. bzoj3307 雨天的尾巴题解及改题过程(线段树合并+lca+树上差分)

    题目描述 N个点,形成一个树状结构.有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品.完成所有发放后,每个点存放最多的是哪种物品. 输入格式 第一行数字N,M接下 ...

  4. HDU 6315.Naive Operations-线段树(两棵树合并)(区间单点更新、区间最值、区间求和)+思维 (2018 Multi-University Training Contest 2 1007)

    6315.Naive Operations 题意很好理解,但是因为区间求和求的是向下取整的a[i]/b[i],所以直接分数更新区间是不对的,所以反过来直接当a[i]==b[i]的时候,线段树对应的位置 ...

  5. 【树状数组(二叉索引树)】轻院热身—candy、NYOJ-116士兵杀敌(二)

    [概念] 转载连接:树状数组 讲的挺好. 这两题非常的相似,查询区间的累加和.更新结点.Add(x,d) 与 Query(L,R) 的操作 [题目链接:candy] 唉,也是现在才发现这题用了这个知识 ...

  6. 树状数组(二叉索引树 BIT Fenwick树) *【一维基础模板】(查询区间和+修改更新)

    刘汝佳:<训练指南>Page(194) #include <stdio.h> #include <string.h> #include <stdlib.h&g ...

  7. 【BZOJ-4326】运输计划 树链剖分 + 树上差分 + 二分

    4326: NOIP2015 运输计划 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 703  Solved: 461[Submit][Status] ...

  8. 2016湖南省赛 I Tree Intersection(线段树合并,树链剖分)

    2016湖南省赛 I Tree Intersection(线段树合并,树链剖分) 传送门:https://ac.nowcoder.com/acm/contest/1112/I 题意: 给你一个n个结点 ...

  9. 【BZOJ 4556】[Tjoi2016&Heoi2016]字符串 SAM+二分+主席树

    这道题市面上就两种法:一种是SA+二分+主席树,一种是SAM+二分+主席树(有不少人打线段树合并???)(除此之外还有一种利用炒鸡水的数据的暴力SA,贼快.....)(当时学SA的时候没做这道题,现在 ...

随机推荐

  1. 论文笔记: LSTD A Low-Shot Transfer Detector for Object Detection

    背景知识: Zeroshot Learning,零次学习. 模型 对于 训练集 中 没有出现过 的 类别,能自动创造出相应的映射: X→Y. Low/Few-shot Learning.One-sho ...

  2. Ctrl + 逗号快捷键被占用[搜狗输入法]

    Ctrl+,(或者Ctrl+逗号)被占用. 快捷键忽然不能用了,只要一用快捷键自动唤醒搜狗输入法,呵呵.极度影响使用. 就说怎么禁掉吧: 其他快捷键禁用参考 参考: 搜狗桌面论坛 注:搜狗输入法一次占 ...

  3. 动态规划算法(Dynamic Programming,简称 DP)

    动态规划算法(Dynamic Programming,简称 DP) 浅谈动态规划 动态规划算法(Dynamic Programming,简称 DP)似乎是一种很高深莫测的算法,你会在一些面试或算法书籍 ...

  4. Asp.Net Core集成Swagger

    工作中一个公司会有很多个项目,项目之间的交互经常需要编写 API 来实现,但是编写文档是一件繁琐耗时的工作,并且随着 API 的迭代,每次都需要去更新维护接口文档,很多时候由于忘记或者人员交替的愿意造 ...

  5. Redis 常用命令学四:有序集合类型命令

    1.增加元素,修改存在元素的分数 127.0.0.1:6379> zadd score 99 a 88 b 66 c (integer) 3 127.0.0.1:6379> ZADD sc ...

  6. const关键字的使用——C语言

    一.常规用法 关键字const用来定义只读变量,被const定义的变量它的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以.所以说它定义的是只读变量,这也就意味着必须在定义的时候就给它 ...

  7. 导入别的项目到我的eclipse上出现红色感叹号问题

        项目红色感叹号问题问题 一般我们在导入别的项目到我的eclipse上面会发现,项目上面有红色的错误     原因 因为我电脑上的 jdk版本和别人电脑jdk版本不一样,那么对于的jre版本也不 ...

  8. shell习题第25题:判断是否开启web服务

    [题目要求] 写一个脚本判断我的linux服务器是否开启web服务?监听80端口 [核心要点] netstat -lntp | grep '80' [脚本] #!/bin/bash n=`netsta ...

  9. THUPC2019/CTS2019/APIO2019游记

    Day -? 居然还能报上thupc,我在队里唯一的作用大约是cfrating稍微高点方便过审.另外两位是lz和xyy. Day -2 我夫人生日! Day -1 lz和xyy的家长都来了带我飞.住在 ...

  10. Golang语言编程规范

    Golang语言编程规范 一.说明 编程规范好,可避免语言陷阱,可有利团队协作,有利项目维护. 正常的Go编程规范有两种:编译器强制的(必须的),gofmt格式化非强制的(非必须). Go宣告支持驼峰 ...