UVa 11948 四叉树
来源:互联网 发布:数据库工作是干什么的 编辑:程序博客网 时间:2024/06/07 08:43
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxn=1024;const int maxm=32767;char g[maxn][maxn],tail;char line[maxm];void build(int k,int lx,int ly,int rx,int ry){ int flag=line[tail++]; if(flag=='*') { int mx=(lx+rx)/2,my=(ly+ry)/2; build(k*4+1,lx,ly,mx,my); build(k*4+2,lx,my+1,mx,ry); build(k*4+3,mx+1,ly,rx,my); build(k*4+4,mx+1,my+1,rx,ry); } else { for(int i=lx;i<=rx;i++) for(int j=ly;j<=ry;j++) g[i][j]=flag; }}int count(int n){ int res=0; while(n) { if(n&1) res++; n/=2; if(res>1) break; } return res;}int main(){ int t,n; scanf("%d",&t); while(t--&&scanf("%d%s",&n,line)!=EOF) { if(count(n)!=1||n<=1) { printf("Invalid length\n"); continue; } tail=0; build(0,1,1,n,n); int flag=0; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(g[i][j]=='1') { int l=j,r=j; while(r<=n&&g[i][r]=='1') r++; if(flag) putchar(','); flag=1; if(l+1!=r) printf("(%d-%d,%d)",l,r-1,i); else printf("(%d,%d)",l,i); j=r; } } } printf("\n"); } return 0;}
0 0
- UVa 11948 四叉树
- UVA 297 四叉树
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- Spark:聚类算法
- JSP基础--基础知识、四大域及九大隐式对象
- PCL中RANSAC使用,点云平面检测,显示,存储
- PHP正则匹配中文字符串
- Codeforces 357C Knight Tournament【并查集】
- UVa 11948 四叉树
- PHP删除数组中特定元素的两种方法
- 2016C语言期中测验——德勒函数
- win764位加载驱动方法整理
- 第十三周 Oj 学生成绩的处理
- HDU2047_阿牛的EOF牛肉串
- 用初次训练的SVM+HOG分类器在负样本原图上检测HardExample
- Oracle用户解锁
- 一个非常标准的Java连接Oracle数据库的示例代码