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

poj 2266 Quadtree

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

poj 2266 Quadtree

#include <cstdio>#include <iostream>#include <sstream>#include <cstdlib>#include <string>#include <vector>#include <set>#include <queue>#include <stack>#include <list>#include <cmath>#include <algorithm>#include <map>#include <ctype.h>#include <string.h>#include <assert.h>using namespace std;typedef long long LL;typedef pair<int, int> PII;typedef pair<PII, int> PII2;template<class T1, class T2>ostream& operator << (ostream &out, pair<T1, T2> pair) {return out << "(" << pair.first << ", " << pair.second << ")"; }//#define DEBUGGER // show debugging message#ifdef DEBUGGER // require C11 (g++ -O2 -std=gnu++0x -Wall -Wshadow)template <class T>void _printcoll (T const& coll){ int first = 1; cout << "[";for (auto a : coll) { if (!first) printf(", "); cout << a; first = false; } cout << "]" << endl; }template <class T>void _printcoll (T const& coll, int len){ int first = 1; cout << "[";for (auto a : coll) {if (!first) printf(", "); cout << a; first = false; len--; if (!len) break; } cout << "]" << endl; }#define DBG(vari) cout<<#vari<<" = "<<(vari)<<endl;#define DBGC(vari) cout<<#vari<<" = ";_printcoll(vari);#define DBGCN(vari, len) cout<<#vari<<" = ";_printcoll(vari, len);#else#define DBG(vari)#define DBGC(vari)#define DBGCN(vari, len)#endif#define MAXN (555)int N;string S;char board[MAXN][MAXN];int start;void solve(int ii, int jj, int len) {    if (len == 1) {        board[ii][jj] = S[start++];    } else if (S[start] != 'Q') {        for (int i = ii; i < ii + len; i++) { for (int j = jj; j < jj + len; j++) {     board[i][j] = S[start]; }        }        start++;    } else {        start++;        solve(ii, jj, len / 2);        solve(ii, jj + len / 2, len / 2);        solve(ii + len / 2, jj, len / 2);        solve(ii + len / 2, jj + len / 2, len / 2);    }}void print(int r, int c) {    int ret = 0;    for (int i = c + 7; i >= c; i--) {        ret <<= 1;        if (board[r][i] == 'B') ret += 1;    }    printf("0x%02x,", ret);}int main() {    cin >> N >> S;    start = 0;    solve(0, 0, N);    printf("#define quadtree_width %dn", N);    printf("#define quadtree_height %dn", N);    printf("static char quadtree_bits[] = {n");    for (int i = 0; i < N; i++) {        for (int j = 0; j < N / 8; j++) { print(i, j * 8);        }        printf("n");    }    printf("};");    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379671.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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