UVA - 297 Quadtrees
2017-04-14 18:57
309 查看
题意: 四分树涂色,一共32*32个格子,涂两遍,最后统计涂了色的格子数量。
思路:边建树边涂色,我是把32*32看作一个1024的长条,然后可以算出编号多少到多少要涂色,因为只关系最后涂了色的格子数量,所以顺序不是很重要。
代码:
思路:边建树边涂色,我是把32*32看作一个1024的长条,然后可以算出编号多少到多少要涂色,因为只关系最后涂了色的格子数量,所以顺序不是很重要。
代码:
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> using namespace std; int vis[1500]; int getdata(int n,int num) { char s; scanf("%c",&s); if(s == 'p') { for(int i = 0; i < 4 ; i++) getdata(n+1,4*num+i); } else if( s == 'f') { if(n == 0) { for(int i = 0; i < 1024 ; i++) vis[i] = 1; } else { int lnum = (int)1024/pow(4.0,n); int start = lnum*num; //cout<<"n num start "<<n<<' '<<num<<' '<<start<<endl; for(int i = start; i < start + lnum; i++) vis[i] = 1; } } } int main() { // freopen("D://in.txt","r",stdin); int t; scanf("%d",&t); getchar(); while(t--) { memset(vis,0,sizeof(vis)); getdata(0,0); getchar(); getdata(0,0); getchar(); int sum = 0; for(int i = 0; i < 1024 ; i++) { sum += vis[i]; } printf("There are %d black pixels.\n",sum); } return 0; }
相关文章推荐
- Uva 297 - Quadtrees
- UVA297 - Quadtrees
- UVA-297 Quadtrees
- uva-297 Quadtrees
- Quadtrees UVA297
- uva_297_Quadtrees
- Quadtrees UVA 297 四分树
- uva_297-Quadtrees
- UVa 297 - Quadtrees
- Uva 297 - Quadtrees
- uva 297 Quadtrees
- uva 297 Quadtrees
- uva 297 - Quadtrees
- UVA 297 四叉树合并 Quadtrees
- uva 297 Quadtrees
- UVa 297 - Quadtrees
- UVA - 297 Quadtrees
- UVa 297 - Quadtrees
- UVA 297 Quadtrees
- uva 297 Quadtrees