uva297 例題6 11(計算有限面積)

2021-10-09 06:38:31 字數 876 閱讀 3796

計算技巧:雜湊思想(空間換時間)

我寫這一題的第一思維是,用二維陣列存樹,兩顆樹的每一層都表示出來,節點數不足的數將其補全。如:第三層應該是16個葉子,但是表示出來的葉子只有8個。那說明上一層的節點肯定有白節點或者黑節點,那麼補全這一層得應該是4個黑4個白。且兩棵樹一定要一樣深,但是要完成這些操作過於複雜(首先需要先構造本來的兩顆樹,齊次需要補全兩顆樹(至此兩棵樹的最高層均為黑,白),再然後將兩棵樹的最高層相加(黑+黑=黑,白+黑=黑,白+白=白))得到最高層乙個黑代表的面積,即可得到全部黑的面積。但是太複雜,太複雜!!!

這裡看第二種解題思路用二維陣列直接表示出所有的面積,將所有標記為白,當遇到黑時將其標註為黑

技巧:雜湊思維**(空間換時間)**

//

// created by fallrain on 2020/8/15.

//#include

using

namespace std;

bool flag[32]

[32];

string s;

int bit=0;

int cnt=0;

void

draw

(int x,

int y,

int w)

else

if(s[bit]

=='f')}

}}else

bit++;}

intmain()

printf

("there are %d black pixels.\n"

,cnt);}

return0;

}

UVA297建立完全四叉樹統計葉子節點

和線段樹的原理一樣,逐層遞迴去建樹,然後統計葉子節點就可以了。當時自己想的是可不可以一邊建樹一邊統計黑點的數目,好像不是很可行,或者說自己太笨,沒想到怎麼寫。include include include include include include include include include...

UVA 297四分樹(非二叉樹)

題意 用乙個四分樹來表示乙個黑白影象,方法是用根節點來表示整個影象,然後再進行等分,按照從右上角的影象開始逆時針的順序編 號,依次有四個節點,如果某子節點對應的區域是全黑或者全白,則直接用黑或者白節點來代替,如果對應的區域既有白區域,也 有黑區域,則用灰節點來表示,並且為這個區域遞迴建樹。給出兩棵四...

UVa11093 例題9 13 環形跑道

uva11093 環形跑到上有n個加油站,每個加油站可以加p i 的油,而到下乙個加油站需要q i 的油,油箱無上限,求出能不能從某個加油站除法能可以走完一圈。紫書上給的思路 如果從第0個加油站出發,無法到達p 1站,在第p個加油站終止,則0 p之間的所有加油站都可以。原理很簡單 既然可以從0到第p...