[問題] 一個演算法的植樹問題

看板Programming作者 (還在尋找穩健的下一步)時間10年前 (2014/05/13 22:15), 編輯推噓4(407)
留言11則, 4人參與, 最新討論串1/1
各位程式的高手 大家好 最近跟同學再討論一個植樹的問題 題目如下: 假設給定一個森林的面積 然後每天在森林裡選擇一小個矩形,在這個矩形裡種同一種樹(總共可以種很多種樹) 試問過了N天後 總共有幾種樹在這個森林 並問每種樹各被種幾棵? 這個問題很像是每次選一個矩形塗一種色, 然後做N次之後問每個顏色所占的區塊面積, 然後可以對一個區域重複塗色,後面塗的顏色會蓋掉前面的顏色。 我同學討論後現在有想到的只有暴力解 因為要處理的樹的種類(顏色)實在太多了 但是我們想說一定有更好的方式可以解這個問題 所以想請問有沒有大大能夠給我們一些好的想法 讓我們可以試試看 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.201.221 ※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1399990519.A.B74.html

05/13 22:49, , 1F
推這個問題有深度
05/13 22:49, 1F

05/14 00:08, , 2F
每塗一個矩形,就把較該矩形晚塗的矩
05/14 00:08, 2F

05/14 00:09, , 3F
形檢查過一遍。每次被蓋到最多只要分
05/14 00:09, 3F

05/14 00:09, , 4F
成沒背蓋到的四小塊遞歸處理就好了。這
05/14 00:09, 4F

05/14 00:09, , 5F
樣應該是O(N^2)?
05/14 00:09, 5F

05/14 00:58, , 6F
線段樹+掃描線
05/14 00:58, 6F

05/14 01:17, , 7F
假如矩形的長度單位為整數 每個點有座標
05/14 01:17, 7F

05/14 01:18, , 8F
然後用Hash紀錄每點的樹種 可以被覆蓋
05/14 01:18, 8F

05/14 01:19, , 9F
可能另外用一個陣列紀錄哪些點有種過樹
05/14 01:19, 9F

05/14 01:20, , 10F
還有個Hash紀錄哪些數有種過
05/14 01:20, 10F

05/14 01:21, , 11F
僅限於邊長為整數的情況...
05/14 01:21, 11F
文章代碼(AID): #1JSYZtjq (Programming)