HPU組隊賽J Ball King(線段樹)

2021-08-26 05:51:29 字數 1845 閱讀 2829

時間限制 1 second  記憶體限制 512 mb

hpu601球王爭霸賽即將舉行,acmer紛紛參加.

現在有n個人報名參賽,每個人都有乙個實力值 ai,實力值較大者獲勝.

為保證比賽公平,我們定義比賽規則:

第一輪:[1, 2]pk,然後[3, 4]pk...最後[2i − 1, 2i]pk.

第二輪:[1, 2]w inner同[3, 4]w inner進行pk,然後[5, 6]w inner同[7, 8]w inner...

第m輪:最後乙個w inner.

現在有q次詢問,每次詢問(u, v),第u輪第v個勝出者的編號?

第一行乙個正整數t,代表有t組測試資料. (1 ≤ t ≤ 10)

每組資料第一行輸入正整數n, q,接下來n個正整數ai,表示實力值.(1 ≤ n, ai ≤ 2^16)(1 ≤ q ≤ 10)

接下來q行每行兩個整數(u, v),詢問第u輪第v個勝出者的編號.(0 ≤ u ≤ 16),(1 ≤ v ≤ 2^16)

輸入保證每位選手的實力值ai都不相同,且詢問合法

輸入樣例

1

2 22 1

0 21 1

輸出樣例

2

1

線段樹查詢區間內的最大值,第n輪的第v個勝出者所在的區間為(資料比較水,比賽的時候因為沒有線段樹板子,行神好像是用暴力過去了,我忘了**長啥樣了,所以只有超級長的線段樹的**,行神的暴力**好像只有五十行左右)

#include #include #include #include #include #include #include #include #include #include #include #include #define ll long long

#define ull unsigned long long

#define ms(a) memset(a,0,sizeof(a))

#define pi acos(-1.0)

#define inf 0x7f7f7f7f

#define lson o<<1

#define rson o<<1|1

const double e=exp(1);

const int maxn=3e5+10;

const int mod=1e9+7;

using namespace std;

int a[maxn];

int father[maxn];

int max;

struct wzy

node[maxn<<2];

void build(int i,int left,int right)

build(i<<1,left,(right+left)/2);

build((i<<1)+1,(right+left)/2+1,right);

}void update(int ri)

void query(int i,int l,int r)

i=i<<1;

if(l<=node[i].right)

i+=1;

if(r>=node[i].left) }

int main(int argc, char const *argv)

int x,y;

while(q--)

}return 0;

}

組隊賽感悟

清明這三天一直呆機房裡打比賽 現在想來當時的痛苦,開心,失落,都是值得回憶的,都是一種成長,雖然一直墊底,去不了省賽,組的女隊隊友並不強,所以什麼都要靠自己,所以這楊自己的水平很明顯的被暴露出來,很弱,很差,能夠在場上a題的感覺還是不錯的,但是找bug的時候也會很氣 這三天喜歡與隊友的配合,三個人一...

nyist 組隊賽(三)

本次比賽是浙江省賽的題,做了5 道題感覺水平有點次啊,讓我感到差距太大,自己需要學的知識好有很多 比賽前10分鐘我來晚了隊友等著我讀題,當我來的時候,當時別人已經把a題給a出來了,a題就是乙個大水題,1分鐘讀題 2分鐘 接著就是c題2分鐘讀題 n分鐘思考 2分鐘 n 20 也是乙個水題,接著g題,模...

nyist 組隊賽(四)

本次已是第四次組隊賽了,感覺狀態不太好,隊友之間配合的不是那麼默契,a,b,c,g,f,h題都是比較水的題目,不過在做題的過程中 總是讓人感覺出乎意外,第一題即wa了一次,緊接著第二題wa了3次,英文水平還是太差啊,需惡補一下,就因為前兩題的判斷失誤,導致f題這麼水 的題,都不敢輕易地寫 比人家慢了...