wzj的資料結構(三)
難度級別:b; 執行時間限制:3000ms; 執行空間限制:51200kb; **長度限制:2000000b
試題描述
請你設計乙個資料結構,完成以下功能:
給定乙個大小為n的整數組a,m次詢問。每次詢問給你i,j兩個引數,求ai至aj中最大的數。
輸入第一行為兩個正整數n,m。
第二行為n個整數ai。
接下來m行為詢問。
輸出對於每個詢問輸出答案。
輸入示例
6 51 -2 3 4 -6 7
1 21 1
1 51 6
4 6輸出示例11
477其他說明
1<=n<=10000
1<=m<=1000000
-10^9<=ai<=10^9
1<=l<=r<=n
st表是處理rmq問題中詢問較多的利器。注意初始化的log[0] = -1,同時記得init(現在我都不敢寫成函式了要不肯定忘。。。)
1 #include2 #include3 #include4 #include5 #include6 #include7#define pau putchar(' ')
8#define ent putchar('\n')
9using
namespace
std;
10const
int maxn=100000+10,inf=-1u>>1;11
int d[maxn][20
],log[maxn],n,q;
12 inline int
read()
15while(isdigit(ch))x=10*x+ch-'
0',ch=getchar();
16return x*=sig;17}
18 inline void write(int
x)if(x<0)putchar('
-'),x=-x;
20int len=0,buf[15];while(x)buf[len++]=x%10,x/=10;21
for(int i=len-1;i>=0;i--)putchar(buf[i]+'
0');return;22
}23int query(int x,int
y)27
void
init()
35void
work()
41return;42
}43void
print()
46int main()
COJ1013 WZJ的資料結構(十三)
這道題有這樣乙個解法 首先把邊依次加到圖中,若當前這條邊與圖中的邊形成了環,那麼把這個環中最早加進來的邊彈出去 並將每條邊把哪條邊彈了出去記錄下來 ntr i j,特別地,要是沒有彈出邊,ntr i 0 這個顯然是可以用lct來弄的對吧。然後對於每個詢問,我們的答案就是對l r中ntr小於l的邊求和...
COJ0985 WZJ的資料結構(負十五)
coj0985 wzj的資料結構 負十五 試題描述 chx有乙個問題想問問大家。給你乙個長度為n的數列a,請你找到兩個位置l,r,使得a l a l 1 a r 中沒有重複的數,輸出r l 1的最大值。以上是附中聯賽加試的一道題。wzj覺得這道題太水了,改了改題目 wzj有乙個問題想問問大家。給你乙...
COJ0989 WZJ的資料結構(負十一)
coj0989 wzj的資料結構 負十一 試題描述 給出以下定義 1.若子串行 l,r 的極差 最大值 最小值 m,則子串行 l,r 為乙個均勻序列。2.均勻序列 l,r 的權值為sum l,r 即序列的元素和。現在給你乙個長度為n的整數序列a,請你求出權值前k大的均勻序列,輸出k行為它們的權值。輸...