栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1610 Quad Trees

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1610 Quad Trees

#include <iostream>#include <vector>#include <string>using namespace std;const int MAXN = 600; class CNODE { public:     int X, Y, E;     int flag, num; public:     CNODE() {}     CNODE(int _x, int _y, int _e, int _f, int _n)         : X(_x), Y(_y), E(_e), flag(_f), num(_n) {} }node[MAXN * MAXN * 2]; int bin_map[MAXN][MAXN]; class CQUADTREE { public: public:     CQUADTREE() {}     void Build(int r, int x, int y, int e)     {         if(e > 1)         {  Build(4 * r - 2, x, y, e / 2);  Build(4 * r - 1, x, y + e / 2, e / 2);  Build(4 * r, x + e / 2, y, e / 2);  Build(4 * r + 1, x + e / 2, y + e / 2, e / 2);  int i, judge = 0;  for(i = 4 * r - 2; i < 4 * r + 2; i++)  {      if(node[i].flag)  break;      judge |= (1 << node[i].num);      if(judge == 3)  break;  }  if(i < 4 * r + 2)  node[r] = CNODE(x, y, e, 1, -1);  else  node[r] = CNODE(x, y, e, 0, bin_map[x][y]);         }         else    //叶子         {  node[r] = CNODE(x, y, e, 0, bin_map[x][y]);         }     } }; void go(int n) {     CQUADTREE tree;     tree.Build(1, 0, 0, n);     vector<int> Q;     string ans = "";     Q.push_back(1);     for(int i = 0; i < Q.size(); i++)     {         if(node[Q[i]].flag)         {  ans += "1";  for(int j = 4 * Q[i] - 2; j < 4 * Q[i] + 2; j++)      Q.push_back(j);         }         else         {  ans += "0";  if(node[Q[i]].num)  ans += "1";  else  ans += "0";         }     }     //cout << ans << endl;     while(ans.length() % 4)  ans = "0" + ans;     for(int i = 0; i < ans.length(); i += 4)     {         int tmp = 8 * (ans[i] - '0') +  4 * (ans[i + 1] - '0') +  2 * (ans[i + 2] - '0') +  1 * (ans[i + 3] - '0');         printf("%X", tmp);     }     printf("n"); } int main() {     int T;     scanf("%d", &T);     while(T--)     {         int n;         scanf("%d", &n);         for(int i = 0; i < n; i++)  for(int j = 0; j < n; j++)      scanf("%d", &bin_map[i][j]);         go(n);     } }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378552.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号