日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 學院 > 開發設計 > 正文

【POJ 3667】Hotel

2019-11-11 07:55:20
字體:
來源:轉載
供稿:網友

POJ 3667

題意

有n個房間和k個操作,最開始全部為空。操作1:輸入一個數d,找出連續d個空房間,輸出起點房間編號。若有多個輸出最小的,如果不存在輸出0。操作2:輸入兩個數x和d,清空從x開始的d個房間。

樣例輸入

10 6 1 3 1 3 1 3 1 3 2 5 5 1 6

樣例輸出

1 4 7 0 5


sol

用線段樹維護,每個節點存儲三個值msum,lsum,rsum。msum表示當前區間最長的連續空房間數量;lsum表示當前區間[l,r]中從l開始連續向右空房間數量;rsum表示當前區間[l,r]中從r開始連續向左空房間數量。 主要的操作集中在如何更新父節點(也就是區間合并操作)。

首先,把左孩子的lsum賦給自己的lsum,rsum同理。

lsum[rt] = lsum[rt<<1];rsum[rt] = rsum[rt<<1|1];

這時候如果左孩子全部為空,則可以和右孩子左側的空房間連接在一起。同理,如果右孩子全部為空,則可以和左孩子右側德空房間連接在一起。

if (lsum[rt] == m - (m >> 1)) lsum[rt] += lsum[rt<<1|1]; if (rsum[rt] == (m >> 1)) rsum[rt] += rsum[rt<<1];

msum有兩三種計算方法:空房間全部在左孩子;空房間全部在右孩子;空房間從左孩子的右側到右孩子的左側。

msum[rt] = max(lsum[rt<<1|1]+rsum[rt<<1],max(msum[rt<<1],msum[rt<<1|1]));

這就是區間合并的寫法:

void pushup(int rt,int m) //更新父節點 { lsum[rt] = lsum[rt<<1]; rsum[rt] = rsum[rt<<1|1]; if (lsum[rt] == m - (m >> 1)) lsum[rt] += lsum[rt<<1|1]; //若左孩子全為空 則和右孩子合并 if (rsum[rt] == (m >> 1)) rsum[rt] += rsum[rt<<1]; msum[rt] = max(lsum[rt<<1|1]+rsum[rt<<1],max(msum[rt<<1],msum[rt<<1|1]));//左孩子或右孩子或在中間合并 }

查詢時,也是分為三種情況: 空房間全部在左孩子:if (msum[rt<<1] >= w) return query(w,lson); 空房間橫跨左孩子和右孩子:if (rsum[rt<<1] + lsum[rt<<1|1] >= w) return mid - rsum[rt<<1] + 1; 空房間全部在右孩子:return query(w,rson);

完整代碼:

#include<cmath>#include<cstdio>#include<vector>#include<cstring>#include<iomanip>#include<stdlib.h>#include<iostream>#include<algorithm>#define ll long long#define inf 1000000000#define mod 1000000007#define N 1000000#define lson l,mid,rt << 1#define rson mid+1,r,rt << 1 | 1using namespace std;int n,m,op,a,b;int lsum[N],rsum[N],msum[N],cover[N];void build(int l,int r,int rt) //msum當前區間最長連續空 l/rsum前綴/后綴最長連續空 { msum[rt] = lsum[rt] = rsum[rt] = r - l + 1; cover[rt] = -1; if (l == r) return; int mid = (l + r) >> 1; build(lson); build(rson);}void pushdown(int rt,int m) //標記下傳 { if (cover[rt] != -1) { cover[rt<<1] = cover[rt<<1|1] = cover[rt]; if (cover[rt] == 0) msum[rt<<1] = lsum[rt<<1] = rsum[rt<<1] = m - (m >> 1); else msum[rt<<1] = lsum[rt<<1] = rsum[rt<<1] = 0; if (cover[rt] == 0) msum[rt<<1|1] = lsum[rt<<1|1] = rsum[rt<<1|1] = m >> 1; else msum[rt<<1|1] = lsum[rt<<1|1] = rsum[rt<<1|1] = 0; cover[rt] = -1; }}void pushup(int rt,int m) //更新父節點 { lsum[rt] = lsum[rt<<1]; rsum[rt] = rsum[rt<<1|1]; if (lsum[rt] == m - (m >> 1)) lsum[rt] += lsum[rt<<1|1]; //若左孩子全為空 則和右孩子合并 if (rsum[rt] == (m >> 1)) rsum[rt] += rsum[rt<<1]; msum[rt] = max(lsum[rt<<1|1]+rsum[rt<<1],max(msum[rt<<1],msum[rt<<1|1]));//左孩子或右孩子或在中間合并 }void update(int L,int R,int c,int l,int r,int rt){ if (L <= l && r <= R) { if (c == 0) msum[rt] = lsum[rt] = rsum[rt] = r - l + 1; else msum[rt] = lsum[rt] = rsum[rt] = 0; cover[rt] = c; return; } pushdown(rt,r-l+1); int mid = (l + r) >> 1; if (L <= mid) update(L,R,c,lson); if (mid < R) update(L,R,c,rson); pushup(rt,r-l+1);}int query(int w,int l,int r,int rt){ if (l == r) return l; pushdown(rt,r-l+1); int mid = (l + r) >> 1; if (msum[rt<<1] >= w) return query(w,lson); else if (rsum[rt<<1] + lsum[rt<<1|1] >= w) return mid - rsum[rt<<1] + 1; return query(w,rson); }int main(){ cin>>n>>m; build(1,n,1); while (m--) { cin>>op; if (op == 1) { scanf("%d",&a); if (msum[1] < a) cout<<0<<endl; else { int p = query(a,1,n,1); cout<<p<<endl; update(p,p+a-1,1,1,n,1); } } else { scanf("%d%d",&a,&b); update(a,a+b-1,0,1,n,1); } } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产高清一级片| 亚洲午夜av| 91精品国产高清| 自拍日韩亚洲一区在线| 日韩精品中文在线观看| 欧美日韩精品三区| 亚洲三级免费看| 久久av免费| 国产日韩免费| 日韩欧美在线1卡| 视频一区视频二区中文| 精品播放一区二区| 国产婷婷色一区二区三区在线| 精品网站999| 日韩视频国产视频| 中文字幕日韩视频| 国产亚洲欧美色| 日韩在线视频免费观看| 国产 日韩 欧美 综合| 日韩欧美在线视频| av不卡免费看| 久久精品女人| 日韩欧美一二三区| 亚洲三级免费看| 中文字幕日韩视频| 一级特黄大欧美久久久| 中文字幕一区不卡| 国产自产视频| 国产黄色小视频| 国产小视频免费在线网址| 色国产在线视频| 国产成免费视频| 欧美亚洲专区| 高清一区二区| 国产小视频免费在线观看| 国产不卡的av| 国产色综合网| 久久婷婷中文字幕| 亚洲精品欧美二区三区中文字幕| 国产黄色在线网站| 午夜伊人狠狠久久| 一区三区视频| 中文字幕欧美人妻精品一区蜜臀| 国产美女主播视频一区| 国产在线一在线二| 日韩字幕在线观看| 欧美 日韩 国产在线观看| 国产一区成人| 香蕉av一区| 欧美在线中文字幕| 亚洲乱码中文字幕| 欧美日韩性视频一区二区三区| 中文字幕亚洲视频| 中文字幕欧美日韩在线| 精品国产免费视频| 欧美国产综合在线V| 久久精品www| 日韩久久精品视频| 一区二区精品区| 日韩精品视频在线观看视频| 国产丝袜一区| 国产农村妇女精品一二区| 欧美日韩在线精品一区二区三区激情综| 久久久精品免费免费| 91精品国产高清久久久久久| 亚洲综合在线视频| 亚洲国产91精品在线观看| av亚洲免费| 国产无遮挡在线视频免费观看| 中文字幕在线观看精品| 中文字幕在线官网| 久久香蕉精品| 日韩视频在线观看视频| 欧美久久在线观看| av影视在线看| 日韩欧美中文字幕公布| 日韩精品在线观看视频| 九一久久久久久| 欧美wwww| 国产裸舞福利在线视频合集| 伊人伊成久久人综合网小说| 一区二区三区久久| 欧美日韩三级一区| 成年人看的羞羞网站| 亚洲深夜福利| 欧美久久久精品| av免费在线网站| 69堂精品视频在线播放| 亚洲一区在线观看免费| 久久精品久久精品国产大片| 久99久视频| 在线国产日本| 欧美激情视频一区二区三区在线播放| 日韩欧美三级在线| 久久婷婷中文字幕| 国产小视频在线观看| 亚洲日产av中文字幕| 欧美 日韩 国产在线观看| 中文字幕日韩国产| 视频一区三区| 国产字幕中文| 亚洲成年人影院在线| 日韩 欧美 综合| 国产成人一二三区| 日韩在线中文视频| 日韩在线精品| 91精品国产91久久| 久久91精品久久久久久秒播| 国产视频中文字幕在线观看| 欧美日韩国产一区在线| 国产三级视频在线播放线观看| 欧美日韩精品在线播放| 日韩av在线中文字幕| 91欧美在线视频| 亚洲欧美中文字幕在线观看| 伊人网站在线| 久久91精品视频| 国产69精品久久久久孕妇国产69久久| 欧美日韩中文字幕在线视频| 欧美日韩亚洲国产综合| 国产v日产∨综合v精品视频| 亚洲黄在线观看| 91精品啪在线观看国产60岁| 欧美日韩激情一区| 欧美日韩精品综合| 精品三级在线| 国产欧美高清在线| 中文字幕国产在线| 视频一区日韩| 国产欧美日韩在线看| 日韩精品视频在线观看免费| 国产欧美日韩精品在线| 久久精品99久久久久久久久| 欧美日韩国产一区中文午夜| 91精品国产综合久久久久久| 不卡一区二区三区视频| 欧美 日韩 综合| 亚洲深夜福利| 精品中文字幕在线| 免费在线国产| 国产丝袜在线播放| 午夜亚洲福利| 99在线国产| 一级一片免费视频| 91麻豆精品国产91久久久使用方法| 欧美中文字幕在线| 一级片在线播放| 偷窥国产亚洲免费视频| 久久夜色精品国产噜噜亚洲av| 欧洲精品二区| 中文字幕日韩在线视频| 国产日韩中文在线| 免费精品国产自产拍观看| 国产手机视频一区二区| 欧美天堂一区二区| 国产三级免费观看| 国产午夜精品视频| 国产中文伊人| 91精品国产综合久久久久久| 日本啊v在线| 欧美一级二级三级区| 日韩视频在线一区| 亚洲成av人片| 亚洲福利一区二区三区| 中文字幕欧美日韩在线| 不卡中文一二三区| 1024国产在线| 亚洲一区二区三区精品中文字幕| av免费观看国产| 视频一区日韩| 国产 欧美 日韩 在线| 欧美日韩国产区| 欧美日韩色综合| 中文字幕中文字幕精品| 国产在线第一页| 日本中文字幕在线观看| 一级片免费在线播放| 国产成人精品网址| 精品国产欧美| 国产成人精品三级| 国产偷国产偷亚洲清高网站 | 欧美在线亚洲一区| 中文字幕久久av| 美女黄a一级视频| 欧美日韩性视频一区二区三区| 亚洲综合日韩中文字幕v在线| 日韩在线三区| 中文字幕欧美日韩在线不卡| 99综合视频| 91精品综合久久| 国产95在线|亚洲| 69av亚洲| 91精品婷婷国产综合久久竹菊| 日韩免费精品视频| 日韩一级中文字幕| 国产一二三四| 日韩不卡一区二区| 国产福利一区二区精品秒拍| 日韩美女中文字幕| 在线欧美一级视频| 日本а中文在线天堂| 日韩中文字幕在线视频观看| 日韩视频免费直播| 免费高清在线一区| 一区二区视频在线| 亚洲免费专区| 交视频在线观看国产| 色综合天天综合网国产成人综合天| 久久久精品福利| 欧美三级日本三级少妇99| www.三级.com| 国产99精品| 在线手机中文字幕| 亚洲.国产.中文慕字在线| 国产久卡久卡久卡久卡视频精品| 日韩中文字幕在线观看视频| 成人精品视频一区| 天天综合天天做| 日韩精品在线观看视频| 久久视频免费看| 国产又粗又猛又爽又黄91精品| 激情综合色综合久久| 婷婷中文字幕综合| 日韩免费高清一区二区| 欧美亚洲国产日韩| 欧美中文字幕在线视频| 亚洲乱码中文字幕| 中文字幕日韩欧美| 亚洲一区中文| 国产日韩av一区| 精品中文字幕在线| 国产一二三四| 亚洲图片小说综合| 欧美日韩亚洲国内综合网俺| 国产黄色在线观看| 欧美一级日韩不卡播放免费| 国产成人综合精品| 中文字幕欧美在线| 午夜国产欧美理论在线播放| 国产 日韩 欧美 综合| 中文字幕 亚洲视频| 一区二区中文字幕在线| 999在线视频| 欧美日韩久久久| 91精品国产入口| 日韩在线中文字幕| 日韩.com| 国产永久在线观看| 中文网丁香综合网| 一区二区三区在线播放视频| 日韩精品视频免费看| 日韩美女视频一区二区在线观看| 午夜一区二区视频| 黄色国产网站在线播放| 国产一级在线| 香蕉精品久久| 亚洲成av人片| 亚洲免费中文字幕| 婷婷中文字幕在线观看| 午夜伊人狠狠久久| 91精品久久久久久久久| 国产欧美久久久| 91精品蜜臀在线一区尤物| 欧美日韩精品三区| 在线观看免费国产成人软件| 欧美日韩一级片在线观看| 91精品久久久久| 精品一二三区| 国产黄色在线观看| 中文网丁香综合网| 国产亚洲人成a一在线v站| 亚洲一区中文字幕在线| 热久久精品国产| 欧美xxxx中国| 五月天久久比比资源色| 精品熟女一区二区三区| 精品日韩av| 欧美久久在线观看| 色综合久久六月婷婷中文字幕| 91精品视频国产| 久久久99久久精品欧美| 日韩在线视频精品| 亚洲成a人片在线www| 精品久久香蕉国产线看观看gif| 国产在线黄色片| 中文网丁香综合网| 国产福利不卡| 精品国产乱码久久久久久牛牛| 最近中文字幕第一页| 一区二区在线高清视频| 日韩精品在线观| 精品日韩在线观看| 中文字幕久久精品| 亚洲综合日韩中文字幕v在线| 国产欧美综合在线观看第十页| 91精品高清| 亚洲女人天堂a在线播放| 亚洲国产午夜精品| 欧美特黄一区| 精品成人久久av| 日韩美女中文字幕| 黄色一区二区视频| 国产99对白在线播放| 国产 欧美 在线| 国产三级在线播放| 婷婷精品视频| 中文字幕亚洲二区| 欧美久久在线| 久草视频观看| 成年人黄国产| 日韩精品首页| 日韩精品一区二区三区视频播放| 亚洲一区视频在线观看视频| 91精品国产综合久久香蕉最新版 | 三级精品视频| 久草视频观看| 激情久久99| 国产传媒久久久| 国产黄色小视频| 亚洲一区在线观看视频| 久久精品日韩无码| 精品一区二区三区中文字幕在线| 亚洲v中文字幕| 国产www在线观看| 精品日韩视频在线观看| 国产一级片在线播放| 中文字幕欧美日韩在线| wwwwww在线观看| 国产在线视频一区二区| 欧美wwww| 久久av免费| 国产www.大片在线| 中文字幕在线亚洲| 91精品国产自产观看在线| 欧美 日韩 国产 高清| 欧美不卡一二三| 国产激情99| 国产123在线| 欧美久久久久久蜜桃| av一区二区高清| 国产黄色片大全| 亚洲中文字幕在线一区| 亚洲免费在线视频一区 二区 | 日韩在线一区二区视频| 精品区一区二区| 亚洲三级av| 不卡一区2区| 日韩三级精品电影久久久| 国产一级免费在线观看| 午夜一区二区视频| 黄污视频在线看| 国产超级va在线视频| 久艹在线视频| 国产黄色网页| 欧美二三四区| 久久婷婷亚洲| 欧美日韩91| 国产欧美综合在线观看第十页| 国产丝袜一区二区| 91久久精品网| 日韩中文字幕在线播放| 99精品999| 在线中文字幕视频观看| va中文字幕| 日韩欧美在线精品| 亚洲视频在线观看三级| 中文字幕日韩欧美在线| 91精品国产91久久久久| 国产香蕉精品视频| 蜜桃精品在线| 一区二区在线看| 久草视频在线看| 中文字幕久久精品| 欧美色视频一区二区三区在线观看 | 日韩中文字幕91| 日韩欧美资源站| 91久久精品午夜一区二区| 欧美日韩激情一区| www.91香蕉视频| 欧美日韩高清不卡| 久久精品免费看| 国产婷婷一区二区| 亚洲欧洲一区二区天堂久久| 1024国产在线| 精品久久久视频| 日韩欧美亚洲日产国| 日韩欧美在线不卡| 在线亚洲免费| 精品亚洲国内自在自线福利| 一区二区三区在线免费| 一区二区在线高清视频| 亚洲图片小说综合| 日韩在线精品| 日韩视频专区| 日韩不卡一二三区| 亚洲图片小说综合| 久久精品久久精品亚洲人| 欧美日韩色综合| 不卡在线视频| 国产日韩在线视频|