求點被多少個矩形覆蓋

2021-06-08 20:52:18 字數 559 閱讀 9153

有很多矩形,矩形可能會重疊,又有很多點分散在平面上,求每乙個點被多少個矩形覆蓋?

方法1:

參考:總體思想是,如果線段樹種的乙個節點,就是這整個區間都在要插入的邊內,則這個節點的計數加1

給乙個n*n的方格棋盤,初始時每個格仔都是白色。現在要刷m次黑色或白色的油漆。每次刷漆的區域都是乙個平行棋盤邊緣的矩形區域。

輸入n,m,以及每次刷漆的區域和顏色,輸出刷了m次之後棋盤上還有多少個棋格是白色。

[問題分析]

首先我們從簡單入手,考慮一維的問題。即對於乙個長度為n的白色線段,對它進行m次修改(每次更新某一子區域的顏色)。問最後還剩下的白色區域有多長。

對於這個問題,很容易想到建立一棵線段樹的模型。複雜度為o(mlgn)。

擴充套件到二維,需要把線段樹進行調整,即首先在橫座標上建立線段樹,它的每個節點是一棵建立在縱座標上的線段樹(即樹中有樹。稱為二維線段樹)。複雜度為o(m(logn)^2)。

方法2:

對矩形排序,如果左邊界相同,按照右邊界排序。

給點乙個點(x,y)

二分查詢左邊界小於x的,然後就可以刪除右邊的矩形,對y也同理

求N 有多少個0,1,2, ,9

給出乙個正整數n 0 n 10000 求n 有多少個0,1,2,9。輸入有一行,為乙個正整數n 輸出n 中0,1,2,9的個數 以空格隔開 10 2 0 1 1 0 0 1 0 2 0 分析 n!最多只有35660位 n 10000時 因為時間充足,所以可採用求大數階乘的演算法求出n!的具體數值,然...

求N!末尾有多少個0

思考 該題實際上是求 2 5 因子對的個數。對於任意乙個階乘,5因子的個數總是小於2因子的個數,僅需考慮n 中5因子的個數 方法 1 將該數用 5 除,得到的商取整數。2 然後再用所得商當被除數除以 5,得到的商取整數。3 持續做到商等於 0 為止。4 過程中的商加總即為階乘的尾數 0 的個數。例 ...

求100000!末尾有多少個0?

這其實是乙個求n的階乘末尾有多少個0的問題 分析 想到這個問題,可能我們第一反應就是現求出n 然後再根據求出的結果,最後得出n 的末尾有多少個0。但是如果是乙個大數,例如100000,肯定會溢位而且效率很低。於是我們另闢蹊徑,把這個問題轉換成那些數相乘可以得到10 這個角度,問題就變得比較的簡單了。...