很常見的一道題,二分找答案,然後看這個答案排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,就是前乙個執行緒所持有的物件鎖。還有乙...