圓錐玩具
問題描述
xqz小朋友家中堆積了好多好多種玩具,其中一種便是圓錐玩具。他經常將這類玩具混亂的擺在地上,欣賞內在的排列美。
他先把圓錐垂直放在地面上。這些圓錐都有乙個特點,就是它的半徑等於高度,且內部是空心的,底面也是空的。xqz小朋友有時會將其中的一些小的圓錐玩具放到比它大的圓錐玩具裡,如果乙個圓錐玩具不被另外任意乙個圓錐完全包裹著,xqz就會格外喜歡它(…)。
你的任務便是幫助xqz小朋友找出所有他格外喜歡的玩具。(特別的,如果兩個圓錐的底面相切,小的圓錐也算被包裹著)為了簡化模型,我們將地面抽象成二維平面。
輸入檔案
第一行乙個正整數n,表示玩具個數。
接下來n行,每行3個實數,ri
,xi,yi
,表示圓錐底面的半徑和座標。(其中hi=ri
,hi表示圓錐的高度),第i行為第i個玩具。
輸入資料僅保證任意兩個圓錐的底面不相交且不重合,不保證不相切。
輸出檔案
第一行乙個數m,表示xqz格外喜歡的玩具的個數。
第二行m個數,輸出玩具的編號,從小到大輸出,以空格隔開。
輸入樣例
5 1 0 -2
3 0 3
10 0 0
1 0 1.5
10 50 50
輸出樣例
2 3 5
資料規模和約定
對於20%的資料,n ≤ 500。
對於100%的資料,n ≤ 100000,-109 ≤
ri,xi
,yi≤ 109
,ri為正數。
本來要用平衡樹的一道題,被lzn樹給解決了,瞬間壓了**,有興趣的同學可以去試試打平衡樹。
本樹由lzn大牛發明,故命名為lzn樹......
lzn樹核心思想:
以每個圓的最左邊的端點為第一關鍵字,半徑為第2關鍵字,快排一便。
然後從左至右搜,一旦超出範圍即可break。
效率的話,我用多組資料測試過了,雖然理論複雜度是n^2,但由於lzn樹的特殊優化性,可以將實際複雜度壓至理論的1/12000左右,甚至超過了打平衡樹的同學,在所有測試點中,平均比平衡樹快大約2倍,感謝lzn大牛!
猥瑣的標程:
平衡樹一 Splay樹
rt totfa i chival i cnt i size i 根節點編號 節點個數 父親左右兒子編號 節點權值 權值出現次數 子樹大小 maintain x 在改變節點位置後,將節點x的size更新 get x 判斷節點x是父親節點的左孩子還是右孩子 clear x 銷毀節點x void mai...
Tyvj P1728 普通平衡樹 平衡樹
題目鏈結 p1728普通平衡樹 此為平衡樹系列第一道 普通平衡樹 1.插入x數 2.刪除x數 若有多個相同的數,因只刪除乙個 3.查詢x數的排名 若有多個相同的數,因輸出最小的排名 4.查詢排名為x的數 5.求x的前驅 前驅定義為小於x,且最大的數 6.求x的後繼 後繼定義為大於x,且最小的數 第一...
二逼平衡樹 樹套樹(線段樹套Splay平衡樹)
題面 bzoj3196 解析線段樹和splay兩棵樹套在一起,常數直逼inf,但最終僥倖過了 思路還是比較簡單,在原陣列維護乙個下標線段樹,再在每乙個線段樹節點,維護乙個對應區間的權值splay。簡單說一下操作 0.提取區間 1.查詢區間內k的排名 提取區間,找到區間內所有的splay,分別比k小的...