cogs247 售票系統

2022-05-27 17:57:08 字數 2036 閱讀 3898

某次列車途經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」,表示當前的售票申請被受理或不被受理。

【分析】

線段樹的應用,記錄區間最大值,標記下傳。

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8

#define new(p) p=&mem[++size_point];p->from=0;p->to=0;p->cnt=p->lazy=0;p->left=null;p->right=null

9const

int maxn=60000*2+100;10

using

namespace

std;

11struct

node

12*root,mem[maxn];

16int c,s,r,size_point=0;17

18void make_tree(node *&t,int

from,int

to);

19int count(node *&t,int

from,int

to);

20void add(node *&t,int

from,int to,int

n);21

void print(node *&t);

2223

intmain()

2435

else printf("

no\n");

36}37return0;

38}39void make_tree(node *&t,int

from,int

to)40

44 t->from=from;t->to=to;

45 make_tree(t->left,from,(from+to)/2

);46 make_tree(t->right,((from+to)/2)+1

,to);47}

48void add(node *&t,int

from,int to,int

n)49

56if (t->lazy!=0)57

62int mid=(t->from+t->to)/2;63

if (to<=mid) add(t->left,from

,to,n);

64else

if (midright,from

,to,n);

65else

//分段

6670 t->cnt=max(t->left->cnt,t->right->cnt);71}

72int count(node *&t,int

from,int

to)73

82int mid=(t->from+t->to)/2;83

if (to<=mid) return count(t->left,from

,to);

84else

if (midright,from

,to);

85else

//分段

8691}92

void print(node *&t)//

除錯用

93

view code

cogs247 售票系統 線段樹

某次列車途經c個城市,城市編號依次為1到c,列車上共有s個座位,鐵路局規定售出的車票只能是坐票,即車上所有的旅客都有座。售票系統是由計算機執行的,每乙個售票申請包含三個引數,分別用o d n表示,o為起始站,d為目的地站,n為車票張數。售票 系統對該售票申請作出受理或不受理的決定,只有在從o到d的區...

cogs247 售票系統 線段樹

輸入檔案 railway.in 輸出檔案 railway.out 時間限制 1 s 記憶體限制 128 mb 問題描述 某次列車途經c個城市,城市編號依次為1到c,列車上共有s個座位,鐵路局規定售出的車票只能是坐票,即車上所有的旅客都有座。售票系統是由計算機執行的,每乙個售票申請包含三個引數,分別用...

cogs247 售票系統 線段樹

輸入檔案 railway.in 輸出檔案 railway.out 時間限制 1 s 記憶體限制 128 mb 問題描述 某次列車途經c個城市,城市編號依次為1到c,列車上共有s個座位,鐵路局規定售出的車票只能是坐票,即車上所有的旅客都有座。售票系統是由計算機執行的,每乙個售票申請包含三個引數,分別用...