區間,座標(流星,LA 3905)

2021-07-24 02:40:00 字數 869 閱讀 7515

一開始想到了用區間,但是只會那種開乙個陣列,然後vis[l+1]++,vis[r]--的那種。對double的區間沒有任何辦法。

然後就想用離散化,列舉一下,超時= =。

計算區間時還算什麼直線方程,兩直線交點的什麼的= =。

大白書上的方法還是讓我大開眼界了的。

對於double的區間,可以建立乙個結構體,名叫事件。結構體有兩個量,乙個是座標pos,另乙個是型別type。

每乙個事件就是某個區間的左端點或右端點。pos就是座標。當type=1時就是左端點,type=-1時就是右端點。掃瞄一遍時直接加上type就可以計數,而且也方便排序。

把事件排一下序,當然是pos小的排前面,當pos相同時,右端點先排前面(因為是開區間,否則那就左端點排前面了)。排好序後,這不就是double版的陣列區間了嘛!

還有區間的計算,我還算直線方程,交點啥的= =。

大白書上的方法好機智,把橫縱座標分開來處理。先開乙個無窮大的區間,然後更新一下橫座標的範圍,再更新一下縱座標的範圍,分分鐘就把區間算出來了= =。

有乙個細節要注意,就是開陣列不是都習慣了開maxn的大小嘛= =。但是有時候要開邊啊事件啊這樣的陣列,可能就要2倍的空間之類的。要注意下別開小了。

ac**

#include#define maxn 100010

using namespace std;

struct evt

else if(b>0)

else

}int main()

{ int t;

scanf("%d",&t);

while(t--)

{scanf("%d %d %d",&w,&h,&n);

e=0;

for(int i=0;i

小L的區間求和

題目傳送 此題解法真是妙哉,不服高人有罪啊,直接上 ps 你妹的,你當時直接看 看懂了 上li 子 9 7 4 5 6 13 1 七個數k 3 sum i 存的是1到i 下標從1開始 前i項和對k取模後的結果 sum的值依次是0 1 2 1 1 2 0 如果sum i 等於0了,說明從1到i這個區間...

L1不可導怎麼辦 座標下降演算法

本文為學習 的筆記 帶l1正則的損失函式,在求梯度時可能遇到不可求導的點,即非光滑的點,這時可以使用非梯度優化的方法比如座標下降法。座標下降法屬於一種非梯度優化的方法,它在每步迭代中沿乙個座標的方向進行線性搜尋 線性搜尋是不需要求導數的 通過迴圈使用不同的座標方法來達到目標函式的區域性極小值。理論支...

L2 4 這是二叉搜尋樹嗎? 區間遞迴

l2 4.這是二叉搜尋樹嗎?時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 一棵二叉搜尋樹可被遞迴地定義為具有下列性質的二叉樹 對於任一結點,其左子樹中所有結點的鍵值小於該結點的鍵值 其右子樹中所有結點的鍵值大於等於該結點的鍵值 ...