《演算法競賽高階指南》1 3鍊錶

2021-09-22 14:10:32 字數 1382 閱讀 8687

給定乙個長度為 n 的序列 a,a 中的數各不相同。對於 a 中的每乙個數 ai,求:

min 1≤j以及令上式取到最小值的 j(記為 pi)。若最小值點不唯一,則選擇使 aj較小的那個。

輸入格式

第一行輸入整數n,代表序列長度。

第二行輸入n個整數a1…an,代表序列的具體數值,數值之間用空格隔開。

輸出格式

輸出共n-1行,每行輸出兩個整數,數值之間用空格隔開。

分別表示當i取2~n時,對應的min1≤j資料範圍

n≤10 ^5,|ai|≤10 ^9

輸入樣例:

31 5 3

輸出樣例:

4 12 1

#include

#include

using namespace std;

typedef

long

long ll;

typedef pairint> pii;

//數值 和下標

const

int n =

100010

;int n;

int p[n]

, l[n]

, r[n]

;//p[n]第n個點的位置,雙向鍊錶前驅後繼

pii a[n]

, ans[n]

;int

main()

sort

(a +

1, a +

1+ n)

;

a[0]

.first =

1e9, a[n +1]

.first =

-1e9

;//兩個哨兵 不用處理邊界 讓開頭和結尾 不影響結果

for(

int i =

1; i <= n; i++

)//從前往後遍歷陣列,建立鍊錶

for(

int i = n; i >

1; i--);

else ans[i]=;

//左右兩邊相等,選左邊的數

// else ans[i] = ;

r[left]

= right, l[right]

= left;

}for

(int i =

2; i <= n; i++

) cout << ans[i]

.first <<

' '<< ans[i]

.second << endl;

return0;

}

《演算法競賽高階指南》 防曬

有c頭奶牛進行日光浴,第i頭奶牛需要minspf i 到maxspf i 單位強度之間的陽光。每頭奶牛在日光浴前必須塗防曬霜,防曬霜有l種,塗上第i種之後,身體接收到的陽光強度就會穩定為spf i 第i種防曬霜有cover i 瓶。求最多可以滿足多少頭奶牛進行日光浴。輸入格式 第一行輸入整數c和l。...

《演算法競賽高階指南》蚯蚓

蛐蛐國最近蚯蚓成災了!隔壁跳蚤國的跳蚤也拿蚯蚓們沒辦法,蛐蛐國王只好去請神刀手來幫他們消滅蚯蚓。蛐蛐國裡現在共有 n 只蚯蚓,第 i 只蚯蚓的長度為 ai 所有蚯蚓的長度都是非負整數,即可能存在長度為0的蚯蚓。每一秒,神刀手會在所有的蚯蚓中,準確地找到最長的那乙隻,將其切成兩段。若有多隻最長的,則任...

演算法競賽高階指南筆記

原碼 原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 其中,第一位為1是負數 1 0000 0001 原 1 1000 0001 原 因此,8位二進位制數的取值範圍 127,127 補碼正數的補碼是其本身 負數的補碼是在其原碼的基礎上,符號位不變,其餘各位取...