計算技巧:雜湊思想(空間換時間)
我寫這一題的第一思維是,用二維陣列存樹,兩顆樹的每一層都表示出來,節點數不足的數將其補全。如:第三層應該是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...