亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

hihocoder #1077 RMQ問題再臨-線段樹

2019-11-10 16:59:08
字體:
來源:轉載
供稿:網友

#1077 : RMQ問題再臨-線段樹

時間限制:10000ms單點時限:1000ms內存限制:256MB

輸入

每個測試點(輸入文件)有且僅有一組測試數據。

每組測試數據的第1行為一個整數N,意義如前文所述。

每組測試數據的第2行為N個整數,分別描述每種商品的重量,其中第i個整數表示標號為i的商品的重量weight_i。

每組測試數據的第3行為一個整數Q,表示小Hi總共詢問的次數與商品的重量被更改的次數之和。

每組測試數據的第N+4~N+Q+3行,每行分別描述一次操作,每行的開頭均為一個屬于0或1的數字,分別表示該行描述一個詢問和描述一次商品的重量的更改兩種情況。對于第N+i+3行,如果該行描述一個詢問,則接下來為兩個整數Li, Ri,表示小Hi詢問的一個區間[Li, Ri];如果該行描述一次商品的重量的更改,則接下來為兩個整數Pi,Wi,表示位置編號為Pi的商品的重量變更為Wi

對于100%的數據,滿足N<=10^6,Q<=10^6, 1<=Li<=Ri<=N,1<=Pi<=N, 0<weight_i, Wi<=10^4。

輸出

對于每組測試數據,對于每個小Hi的詢問,按照在輸入中出現的順序,各輸出一行,表示查詢的結果:標號在區間[Li, Ri]中的所有商品中重量最輕的商品的重量。

樣例輸入
103655 5246 8991 5933 7474 7603 6098 6654 2414 884 60 4 90 2 101 4 70090 5 61 3 79491 3 1227樣例輸出
24148847474
題目其實很簡單,就一個簡單的線段樹結構,可是寫完之后提交答案總是超時,這是超時的代碼:
#include<iostream>#include<algorithm>#define MAX 1000000using namespace std;struct NODE{	int low, high;	int value;}node[4*MAX];void Init(int num, int low, int high){	if (low == high)	{		node[num].high = node[num].low = low;		cin >> node[num].value;		return;	}	int mid = (low + high) >> 1;	node[num].high = high;	node[num].low = low;	Init(2 * num, low, mid);	Init(2 * num+1, mid + 1, high);	node[num].value = min(node[num * 2].value,node[num * 2 + 1].value);	return;}void update(int num, int pos, int revise){	if (node[num].low == node[num].high)	{		node[num].value = revise;return;	}	int mid = node[num * 2].high;	if (mid >= pos)		update(num * 2, pos, revise);	else		update(num * 2 + 1, pos, revise);	node[num].value = min(node[num * 2].value,node[num * 2 + 1].value);}int query(int num, int low, int high){//	if (node[num].revise) update(num, node[num].pos, node[num].revise);	if (node[num].low == low&&node[num].high == high)		return node[num].value;	int mid = node[num * 2].high;	if (mid >= high)		return query(num * 2, low, high);	if (mid<low)		return query(num * 2 + 1, low, high);	int le = query(num * 2, low, mid);	int ri = query(num * 2 + 1, mid + 1, high);	return min(le,ri);}int main(){	int n;	cin >> n;	Init(1, 1, n);	int m;	cin >> m;	for (int i = 0;i<m;i++)	{		int a, b, c;		cin >> a >> b >> c;		switch (a)		{		case 0:cout << query(1, b, c)<<endl;break;		case 1:update(1, b, c);break;		}	}	return 0;
}
最后想到可能是數據量太大,輸入輸出比較多,而C++的cin,cout效率又比較低,所以改成了scanf和PRintf,結果真的過了,所以在競賽中,輸入輸入較多的話,還是用scanf和printf比較好。
#include<iostream>#include<cstdio>#include<algorithm>#define MAX 1000000using namespace std;struct NODE{	int low, high;	int value;}node[4*MAX];void Init(int num, int low, int high){	if (low == high)	{		node[num].high = node[num].low = low;		scanf("%d",&node[num].value);		return;	}	int mid = (low + high) >> 1;	node[num].high = high;	node[num].low = low;	Init(2 * num, low, mid);	Init(2 * num+1, mid + 1, high);	node[num].value = min(node[num * 2].value,node[num * 2 + 1].value);	return;}void update(int num, int pos, int revise){	if (node[num].low == node[num].high)	{		node[num].value = revise;return;	}	int mid = node[num * 2].high;	if (mid >= pos)		update(num * 2, pos, revise);	else		update(num * 2 + 1, pos, revise);	node[num].value = min(node[num * 2].value,node[num * 2 + 1].value);}	int query(int num, int low, int high){	if (node[num].low == low&&node[num].high == high)		return node[num].value;	int mid = node[num * 2].high;	if (mid >= high)		return query(num * 2, low, high);	if (mid<low)		return query(num * 2 + 1, low, high);	int le = query(num * 2, low, mid);	int ri = query(num * 2 + 1, mid + 1, high);	return min(le,ri);}int main(){	int n;	scanf("%d", &n);	Init(1, 1, n);	int m;	scanf("%d", &m);	for (int i = 0;i<m;i++)	{		int a, b, c;		scanf("%d%d%d", &a, &b, &c);		switch (a)		{		case 0:printf("%d/n", query(1, b, c));break;		case 1:update(1, b, c);break;		}	}	return 0;}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲午夜未删减在线观看| 欧美性猛交xxxx久久久| 亚洲91精品在线观看| 亚洲免费av网址| 久久精品视频在线观看| 美女精品久久久| 欧洲日本亚洲国产区| 欧美大成色www永久网站婷| 成人网在线免费看| 欧美国产日产韩国视频| 91色琪琪电影亚洲精品久久| 国产精品亚洲视频在线观看| 欧美噜噜久久久xxx| 国产亚洲aⅴaaaaaa毛片| 国产精品久久久久秋霞鲁丝| 亚洲精品永久免费精品| 欧美激情成人在线视频| 欧美另类极品videosbest最新版本| 亚洲网站视频福利| 97av视频在线| 色综合久久中文字幕综合网小说| 中文字幕欧美专区| 国产成人精品日本亚洲专区61| 亚洲另类xxxx| 国产日韩在线精品av| 欧美高清视频在线观看| 日韩网站在线观看| 国产999精品久久久| 9.1国产丝袜在线观看| 国模私拍一区二区三区| 欧美精品免费看| 美女av一区二区三区| 日韩中文字幕视频在线观看| 国内精品免费午夜毛片| 伊人激情综合网| 亚洲天堂成人在线| 亚洲精品久久久久中文字幕欢迎你| 日韩电影免费在线观看中文字幕| 亚洲国产欧美在线成人app| 91sao在线观看国产| 中文日韩在线观看| 播播国产欧美激情| 亚洲美女www午夜| 成人亚洲综合色就1024| 亚洲精品白浆高清久久久久久| 日韩亚洲成人av在线| 国产精品久久久久久久久久ktv| 国产97在线|亚洲| 国产成人综合精品| 亚洲午夜av电影| 亚洲精品日韩av| 38少妇精品导航| 亚洲国产小视频在线观看| 狠狠躁夜夜躁人人躁婷婷91| 成人国产在线激情| 国产精品九九九| 欧美极品少妇全裸体| 亚洲香蕉伊综合在人在线视看| 日韩免费中文字幕| 欧美日韩亚洲国产一区| 96sao精品视频在线观看| 欧美电影在线播放| 最近日韩中文字幕中文| 欧美日韩亚洲系列| 欧美激情中文字幕乱码免费| 一区二区三区视频免费在线观看| 国产午夜精品一区理论片飘花| 亚洲成人精品视频在线观看| 国产丝袜视频一区| 国外视频精品毛片| 久久天天躁狠狠躁夜夜av| 亚洲级视频在线观看免费1级| 亚洲一品av免费观看| 欧美乱大交xxxxx另类电影| 欧美日韩在线视频一区二区| 久久九九全国免费精品观看| 亚洲一区二区三区四区视频| 亚洲欧美制服中文字幕| 黑人巨大精品欧美一区二区一视频| 欧美日韩亚洲精品内裤| 夜夜躁日日躁狠狠久久88av| 国产精品免费久久久久影院| 久久久久久久爱| 国产成人a亚洲精品| 激情久久av一区av二区av三区| 日本免费在线精品| 欧美极度另类性三渗透| 国产suv精品一区二区三区88区| 国产亚洲精品美女| 亚洲精品ady| 92国产精品视频| 久久久久久国产精品| 狠狠操狠狠色综合网| 国产成人自拍视频在线观看| 2024亚洲男人天堂| 亚洲激情视频在线观看| 日韩精品极品视频免费观看| 91精品国产高清久久久久久久久| 国产色视频一区| 久久99久久久久久久噜噜| 欧美福利视频网站| 97视频在线观看播放| 国产美女高潮久久白浆| 91久久综合亚洲鲁鲁五月天| 国产免费成人av| 欧美精品电影免费在线观看| 久久成人人人人精品欧| 俺去啦;欧美日韩| 久久精品国产欧美激情| 俺去亚洲欧洲欧美日韩| 亚洲黄色在线看| 亚洲福利在线观看| 欧美做受高潮1| 在线观看欧美成人| 97视频在线观看亚洲| 欧美日韩亚洲一区二区| 亚洲一区二区三区sesese| 97国产一区二区精品久久呦| 国产亚洲欧洲高清一区| 亚洲欧美精品伊人久久| 色悠悠久久久久| 8090理伦午夜在线电影| 欧美日韩国产综合视频在线观看中文| 一区二区欧美亚洲| 亚洲一区二区免费| 国产成人精品日本亚洲| 久久精品成人动漫| 最近的2019中文字幕免费一页| 欧美日韩国产精品一区二区不卡中文| 日韩免费观看高清| 久久精品国产一区二区电影| 欧美丰满少妇xxxx| 一区二区三区高清国产| 亚洲毛片在线观看.| 国产欧美 在线欧美| 欧美激情免费观看| 精品国产乱码久久久久久虫虫漫画| 亚洲变态欧美另类捆绑| 91在线看www| 欧美精品18videosex性欧美| 亚洲伊人一本大道中文字幕| 国产日韩精品电影| 亚洲成人免费在线视频| 欧美日韩午夜视频在线观看| 青青草精品毛片| 日本欧美一二三区| 中文字幕av一区二区| 国产精品免费视频xxxx| 欧美亚洲国产成人精品| 久久久最新网址| 欧美性xxxxxxx| 国产日韩欧美成人| 国产一区二区三区精品久久久| 不卡伊人av在线播放| 在线观看国产成人av片| 黑人欧美xxxx| 精品久久久久久电影| 欧美精品在线观看91| 国产午夜精品视频免费不卡69堂| 日韩av电影中文字幕| 国模精品系列视频| 欧美激情欧美激情在线五月| 欧美一区第一页| 亚洲区一区二区|