COGS247. 售票系统[线段树 RMQ]
2016-10-11 00:04
344 查看
247. 售票系统
★★☆ 输入文件:railway.in输出文件:
railway.out简单对比
时间限制:1 s 内存限制:128 MB
【问题描述】
某次列车途经C个城市,城市编号依次为1到C,列车上共有S个座位,铁路局规定售出的车票只能是坐票, 即车上所有的旅客都有座。售票系统是由计算机执行的,每一个售票申请包含三个参数,分别用O、D、N表示,O为起始站,D为目的地站,N为车票张数。售票 系统对该售票申请作出受理或不受理的决定,只有在从O到D的区段内列车上都有N个或N个以上的空座位时该售票申请才被受理。请你写一个程序,实现这个自动 售票系统。【输入格式】
第一行包含三个用空格隔开的整数C、S和R,其中1≤C≤60000, l≤S≤60000,1≤R≤60000。C为城市个数,S为列车上的座位数,R为所有售票申请总数。接下来的R行每行为一个售票申请,用三个由空格隔开的整数O,D和N表示,O为起始站,D 为目的地站,N为车票张数,其中1≤D≤C,1≤O≤C,所有的售票申请按申请的时间从早到晚给出。【输出格式】
输出共有R行,每行输出一个“YES”或“NO”,表示当前的售票申请被受理或不被受理。【输入输出样例】
输入:4 6 4 1 4 2 1 3 2 2 4 3 1 2 3输出:
YES YES NO NO
区间加,区间最大值 注意别把输入搞混了
// // main.cpp // cogs247 // // Created by Candy on 10/10/16. // Copyright © 2016 Candy. All rights reserved. // #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #define m (l+r)/2 #define lson o<<1,l,m #define rson o<<1|1,m+1,r #define lc o<<1 #define rc o<<1|1 using namespace std; typedef long long ll; const int N=6e4+5; inline int read(){ char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f; } int C,S,n,l,r,v; struct node{ int mx,lazy; }t[N<<2]; inline void paint(int o,int v){ t[o].mx+=v; t[o].lazy+=v; } inline void pushDown(int o){ paint(lc,t[o].lazy); paint(rc,t[o].lazy); t[o].lazy=0; } void add(int o,int l,int r,int ql,int qr,int v){ if(ql<=l&&r<=qr) paint(o,v); else{ pushDown(o); if(ql<=m) add(lson,ql,qr,v); if(m<qr) add(rson,ql,qr,v); t[o].mx=max(t[lc].mx,t[rc].mx); } } int query(int o,int l,int r,int ql,int qr){//printf("%d %d\n",l,r); if(ql<=l&&r<=qr) return t[o].mx; else{ pushDown(o); int ans=0; if(ql<=m) ans=max(ans,query(lson,ql,qr)); if(m<qr) ans=max(ans,query(rson,ql,qr)); return ans; } } int main(int argc, const char * argv[]){ freopen("railway.in","r",stdin); freopen("railway.out","w",stdout); C=read();S=read();n=read(); for(int i=1;i<=n;i++){ l=read();r=read()-1;v=read(); int tmp=query(1,1,C,l,r);//printf("tmp %d\n",tmp); if(S-tmp<v) puts("NO"); else{ puts("YES"); add(1,1,C,l,r,v); } } return 0; }
相关文章推荐
- 【cogs247】售票系统【线段树】
- 【cogs247】售票系统【线段树】
- 【cogs247】售票系统【线段树】
- 【BZOJ 1901】Zju2112 Dynamic Rankings &&【COGS 257】动态排名系统 树状数组套线段树
- 【cogs247】售票系统
- 利用iphone的多线程实现“售票系统”(手把手教你iphone开发 - 基础篇)
- 用汽车售票系统谈数据库结构设计
- 福州火车站售票系统不堪重负大面积瘫痪
- 16.2.2火车站售票系统模拟程序(CriticalSection)
- 医院/铁路公路售票系统频出系统故障
- HDU1754线段树解经典的RMQ问题
- 一个锁的实(售票系统售票逻辑设计)
- 汽车站售票管理系统
- 火车票售票系统
- 16.1.4火车站售票系统模拟程序(Event)
- 火车站点售票系统
- 全国统一的基于身份证识别的计算机铁路售票系统设想
- 15.4.1火车站售票系统模拟程序(Mutex)
- 对奥运售票系统崩溃的一些想法
- Sybase数据库助力中国铁路售票系统案例