ABC155 D pair 邊界處理取整

2022-08-10 03:48:10 字數 965 閱讀 2152

很常見的一道題,二分找答案,然後看這個答案排rank?,排rank?用二分繼續找一遍二分套二分即可,就是邊界比較煩,老年人寫的心情煩躁

老年人被取整坑的幾天。這題其實以前寫過,以前被坑過,然後這次又被坑了一次,不愧是我。。。

1.ceil和floor乙個是接近無窮大,另外乙個是接近無窮小取

2.直接兩個int除 是向0取整 int(-1/2)=-1 int(-4/3)=-1也就是負數的時候和人正常的向下取整邏輯不一樣,邏輯上認為是向小了取,而事實是向0取

3.如果n>=m>0向上取整建議(n-1)/m+1

4.負數的時候推薦使用ceil 除非精度要求特別高 否則一般不會翻車

#includeusing namespace std;

#define pb push_back

#define f first

#define s second

#define mkp make_pair

#define pii pairtypedef long long ll;

const int maxn=2e5+5;

const int mod=1e9+7;

ll n,k,ling;

ll a[maxn];

bool check(ll x)

else if(a[i]<0)

cnt+=n-(lower_bound(a,a+n,tmp)-a);

} else if(a[i]>0)

cnt+=upper_bound(a,a+n,tmp)-a;

} if(a[i]*a[i]<=x)cnt--;

//cout<=k;

}int main()

sort(a,a+n);

ll l=-1e18,r=1e18,ans=0;

while(l<=r)

//check(-6);

cout<}

155實現最小棧

題意 設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。方法一 使用輔助棧class minstack def init self self.stack...

堆疊 155 最小棧

題目 設計乙個支援 push pop top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。示例 輸入 minstack push push push getmin pop top get...

三個執行緒ABC,交替列印ABC

問題為三線程間的同步喚醒操作,主要的目的就是threada threadb threadc threada 迴圈執行三個執行緒。為了控制線程執行的順序,那麼就必須要確定喚醒 等待的順序,所以每乙個執行緒必須同時持有兩個物件鎖,才能繼續執行。乙個物件鎖是prev,就是前乙個執行緒所持有的物件鎖。還有乙...