acwing 136 (set對結構體排序)

2021-10-01 07:53:34 字數 606 閱讀 6978

有n個數,從第二個數開始,要求輸出它前面的數中與當前數的最小的差值,以及那個數的下標。如果差值一樣,輸出較小的那個數的下標。

比如1 5 3 從5開始,5前面只有1,與 1的差值為4,所以輸出4 1

對於3,和1,5的差值都為2,但是1更小,輸出1的小標,即輸出2 1

這題可以用pair也可以用結構體,用結構體需要自定義排序方式,和優先佇列定義結構體排序一樣。

先要插入乙個極大值和乙個極小值,作為邊界。然後每次輸入乙個數,就找出它的前驅和後繼,比較與前驅的差和與後繼的差的大小。輸出小的。然後再把這個數插入set

#pragma warning(disable:4996)

#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

struct node

//從小到大排序

};setst;

int main()

st.insert(x);//插入x

} return 0;

}

Acwing136 臨值查詢

有兩種做法,一種是用set,將該值裝入容器,然後用find查詢該值的位置,比較一下下乙個和前乙個的與該值的差值,選差值小的那個,相等選前面那個,注意別越界.include using namespace std const int max val 2e9 setint,int a intmain i...

python對集合set的操作

python的set和其他語言類似,是乙個無序不重複元素集,基本功能包括關係測試和消除重複元素.集合物件還支援union 聯合 intersection 交 difference 差 和sysmmetric difference 對稱差集 等數 算,sets 支援 x in set,len set ...

SELECT與SET對變數賦值

sql server 中對已經定義的變數賦值的方式用兩種,分別是 set 和 select。對於這兩種方式的區別,sql server 聯機叢書中已經有詳細的說明,但很多時候我們並沒有注意,其實這兩種方式還是有很多差別的。sql server推薦使用 set 而不是 select 對變數進行賦值。當...