COGS——T 2739. 凯伦和咖啡
http://www.cogs.pro/cogs/problem/problem.php?pid=2739
★★☆ 输入文件:coffee.in 输出文件:coffee.out 简单对比
时间限制:1 s 内存限制:512 MB
【题目描述】
为了在上课时保持清醒,凯伦需要一些咖啡。咖啡爱好者凯伦想知道最佳的温度来冲煮完美的咖啡。因此,她花了一些时间阅读几本食谱,其中包括广受好评的“咖啡的艺术”。
她知道有n个食谱,其中第i个食谱建议应当在li和ri度之间冲煮以达到最佳的味道。凯伦认为如果至少k个食谱推荐某个温度,那么那个温度是可以接受的。
凯伦的性格比较多变,因此她会问q个问题,对于每一个问题,她会给出一个温度区间[a,b],你要告诉她有多少可接受的整数温度在这个范围内。
【输入格式】
第一行输入包含三个整数,n,k(1≤k≤n≤200000)和q(1≤q≤200000),如题中所描述。
接下来n行描述每一个食谱,具体来说,其中的第i行包含两个整数li和ri(1≤li≤ri≤200000),描述第i个食谱建议咖啡在li和ri度之间进行冲煮(包括端值)。
接下来q行为q个询问。这些行中的每一行都包含a和b,(1≤a≤b≤200000),表示她想知道a和b度之间的可接受的整数温度的数量,包括a和b。
【输出格式】
对于每个询问,一行输出一个答案。
【样例输入】
3 2 4
91 94
92 97
97 99
92 94
93 97
95 96
90 100
【样例输出】
3
3
0
4
【提示】
数据进行了更新,卡掉了部分暴力程序。
【来源】
线段树//分块//(好像有线性作法呃呃呃)
#include <cstdio> const int N(+);
int n,q,k;
struct Tree
{
int l,r,sum,flag,ret;
}tr[N<<];
#define lc (now<<1)
#define rc (now<<1|1)
#define mid (tr[now].l+tr[now].r>>1)
void Tree_build(int now,int l,int r)
{
tr[now].l=l,tr[now].r=r;
if(l==r)
{
tr[now].flag=;
tr[now].sum=;
return ;
}
Tree_build(lc,l,mid);
Tree_build(rc,mid+,r);
}
void Tree_add(int now,int l,int r)
{
if(tr[now].l>=l&&tr[now].r<=r)
{
tr[now].sum++;
return ;
}
if(r<=mid) Tree_add(lc,l,r);
else if(l>mid) Tree_add(rc,l,r);
else Tree_add(lc,l,mid),Tree_add(rc,mid+,r);
}
int Tree_query(int now,int l,int r)
{
if(tr[now].l==l&&tr[now].r==r) return tr[now].sum;
if(r<=mid) return Tree_query(lc,l,r);
else if(l>mid) return Tree_query(rc,l,r);
else return Tree_query(lc,l,mid)+Tree_query(rc,mid+,r);
}
void Tree_push(int now)
{
if(tr[now].flag)
{
if(tr[now].sum>=k) tr[now].sum=;
else tr[now].sum=;
return ;
}
tr[lc].sum+=tr[now].sum;
tr[rc].sum+=tr[now].sum;
tr[now].sum=;
Tree_push(lc); Tree_push(rc);
tr[now].sum=tr[lc].sum+tr[rc].sum;
} inline void read(int &x)
{
x=; register char ch=getchar();
for(;ch>''||ch<'';) ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-'';
} #define swap(a,b) {int tmp=a;a=b;b=tmp;}
int AC()
{
freopen("coffee.in","r",stdin);
freopen("coffee.out","w",stdout);
read(n),read(k),read(q);
Tree_build(,,N);
for(int l,r;n--;)
{
read(l),read(r);
if(l>r) swap(l,r);
Tree_add(,l,r);
}
Tree_push();
for(int l,r;q--;)
{
read(l),read(r);
if(l>r) swap(l,r);
printf("%d\n",Tree_query(,l,r));
}
return ;
} int Hope=AC();
int main(){;}
COGS——T 2739. 凯伦和咖啡的更多相关文章
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
- 【COGS 254】【POI 2001】交通网络图
http://www.cogs.top/cogs/problem/problem.php?pid=254 dist[i]表示能最早到达i点的时间.这样就可以用最短路模型来转移了. #include&l ...
- ACM:POJ 2739 Sum of Consecutive Prime Numbers-素数打表-尺取法
POJ 2739 Sum of Consecutive Prime Numbers Time Limit:1000MS Memory Limit:65536KB 64bit IO Fo ...
- 【COGS】894. 追查坏牛奶
http://cojs.tk/cogs/problem/problem.php?pid=894 题意:n个点m条边的加权网络,求最少边数的按编号字典序最小的最小割.(n<=32, m<=1 ...
- 流程引擎Activiti系列:在eclipse中搭建咖啡兔的Activiti演示工程中的各种坑及其解决方法(kft-activiti-demo-no-maven)
近期在学习activiti,打算基于现有的框架,比如activiti-explorer或者咖啡兔的示例工程 kft-activiti-demo,在此基础上添加自己的业务流程,看看是否可以走通,以及这个 ...
- 喝咖啡写脚本,顺便再加一点点CSS语法糖 1.选择环境
经过对前端开发的初步了解,大体上发现了以下几点,前端开发需要使用脚本语言,主要是JavaScript,需要Html,需要CSS,这些东西相信很多人已经很熟了.但是仅仅只是学习一点简单的JS,配合Htm ...
- poj 2739 Sum of Consecutive Prime Numbers 解题报告
题目链接:http://poj.org/problem?id=2739 预处理出所有10001以内的素数,按照递增顺序存入数组prime[1...total].然后依次处理每个测试数据.采用双重循环计 ...
- 【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)
http://cojs.tk/cogs/problem/problem.php?pid=147 学到新姿势了orz 这题求的是一条1-n的路径的最大路径最小. 当然是在k以外的. 我们可以转换一下. ...
- 【COGS & USACO Training】710. 命名那个数字(hash+水题+dfs)
http://cojs.tk/cogs/problem/problem.php?pid=710 近日开始刷水... 此题我为了练一下hash...但是hash跑得比暴力还慢.. 不言而喻... #in ...
随机推荐
- 洛谷 P1124 文件压缩
P1124 文件压缩 题目背景 提高文件的压缩率一直是人们追求的目标.近几年有人提出了这样一种算法,它虽然只是单纯地对文件进行重排,本身并不压缩文件,但是经这种算法调整后的文件在大多数情况下都能获得比 ...
- Scrapy系列教程(6)------怎样避免被禁
避免被禁止(ban) 有些网站实现了特定的机制,以一定规则来避免被爬虫爬取. 与这些规则打交道并不easy,须要技巧,有时候也须要些特别的基础. 假设有疑问请考虑联系 商业支持 . 以下是些处理这些网 ...
- Swift入门(四)——可选类型(Optionals)与断言(Assert)
可选类型是什么? 首先看一个问题,Swift中String类型的变量有一个叫做toInt的方法,能够把String类型变量转换为Int类型变量. var stringValue = "5&q ...
- Android 经常使用设计模式(一)
由于项目变更的频繁性,作为一名程序猿,我们须要掌握设计模式的必要性.就不言而喻~~.以下就是一些我自己学习的设计模式总结. 接下来,主要是针对几个比較经常使用模式进行解说,主要是以下几种: 观察者模式 ...
- HDU 1171 Big Event in HDU(多重背包)
Big Event in HDU Problem Description Nowadays, we all know that Computer College is the biggest depa ...
- Java设计模式透析之 —— 模板方法(Template Method)
今天你还是像往常一样来上班,一如既往地開始了你的编程工作. 项目经理告诉你,今天想在server端添加一个新功能.希望写一个方法.能对Book对象进行处理.将Book对象的全部字段以XML格式进行包装 ...
- hdu 3074 求区间乘积
线段树水题 #include<stdio.h> #include<string.h> #include<iostream> using namespace std; ...
- angularjs1--动画
<!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...
- VIM7.4 编译安装 开启python
https://github.com/wklken/k-vim ./configure --prefix=/usr/local/vim74 \--with-features=huge \--enabl ...
- 常见问题处理之Emoji
所谓Emoji就是一种在Unicode位于\u1F601-\u1F64F区段的字符.这个显然超过了目前常用的UTF-8字符集的编码范围\u0000-\uFFFF.Emoji表情随着IOS的普及和微信的 ...