USACO 5 5 1 求矩形並的周長

2022-03-21 02:57:32 字數 788 閱讀 6466

首先將矩形離散化成一系列線段, 這裡以橫邊為例, 我們將橫邊離散化之後按照縱座標排序, 縱座標相同的時候始邊在前。 然後對於乙個線段,對應區間的pos[j]++, 如果pos[j]由0-》1 或者由 1 -> 0那麼ans++.  這個過程還可以使用線段樹優化, **如下:

/*

id: m1500293

lang: c++

prog: picture

*/#include

#include

#include

using

namespace

std;

intn;

int pos[20000+100

];int m = 10000

;struct

edge

return f }

}e[2][10000+10

];int solve(int

o)

return

res;

}int

main()

; e[

0][i*2+1] = (edge) ;

e[1][i*2] = (edge) ;

e[1][i*2+1] = (edge) ;

}int ans1 = solve(0

);

int ans2 = solve(1

); printf(

"%d\n

", ans1+ans2);

return0;

}

Poj1177 求矩形並的輪廓周長

題意 給出多個矩形,求這些矩形所覆蓋圖形的周長。可用線段樹來做,兩種方法 1 分別對x和y方向離散化後做線段樹,求出各方向上的輪廓長 2 對乙個方向上的座標進行離散化,用另一維進行掃瞄 1 覆蓋的線段長度 2 不相邊的線段數 3 該節點表示的區間兩端點是否被覆蓋 用於合併線段 code includ...

矩形的周長並 計蒜客

在乙個二維座標平面中,有 n 個矩形,每個矩形的邊都是平行於 x 軸或 y 軸的。給定這 n 個矩形的位置,這 n 個矩形之間可以相互覆蓋。求這 n 個矩形所組成的圖形的周長是多少。輸入格式 第一行輸入乙個整數 n,表示平面中矩形的數量。1 n 50000 接下來 n 行,每行四個整數 x1,y1,...

poj 1177 區間樹求矩形周長並

題意 在平面上給若干矩形,求它們的周長並。分析 用區間樹維護x軸上區間的一些覆蓋屬性。區間樹維護的是一些區間的性質,構造為build l,mid build mid,r 線段樹維護的是一些點的性質,構造為build l,mid build mid 1,r 區間樹經常被視為線段樹,但個人認為因為點線有...