ZOJ 1788 Quad Trees


在acm竞赛里面,用指针写的题解一般都是过不了的
但是翻看了题解区和咱老师在例如云上的题解几乎都是这样写的
强迫症逼得我写了篇动态开点得题解

#include<bits/stdc++.h>
using namespace std;
int T,n,o,idx;
const int N=600;
char a[N][N];
unordered_map<int,string>mp;
struct node{string v;int child[4];#define s0 tr[tr[u].child[0]]#define s1 tr[tr[u].child[1]]#define s2 tr[tr[u].child[2]]#define s3 tr[tr[u].child[3]]
}tr[1000010];
int dfs(int x,int y,int l){int u=++o;if(l==1){tr[u].v="0";tr[u].v+=a[x][y];return u;}l/=2;tr[u].child[0]=dfs(x,y,l);tr[u].child[1]=dfs(x,y+l,l);tr[u].child[2]=dfs(x+l,y,l);tr[u].child[3]=dfs(x+l,y+l,l);bool flag=1;if(s0.v=="1")flag=0;if(s1.v=="1")flag=0;if(s2.v=="1")flag=0;if(s3.v=="1")flag=0;// for(int i=0;i<4;i++){//     if(tr[tr[u].child[i]].v=="1")flag=0;// }if(s1.v!=s0.v)flag=0;if(s2.v!=s0.v)flag=0;if(s3.v!=s0.v)flag=0;// for(int i=1;i<4;i++){//     if(tr[tr[u].child[i]].v!=s0.v)flag=0;// }if(flag)tr[u].v=s0.v;else tr[u].v="1";return u;
}
string bfs(int u){string ans;if(tr[u].v[0]=='0')return ans=tr[u].v[1];queue<int>q;q.push(u);while(q.size()){int x=q.front();q.pop();if(tr[x].v[0]=='0')ans+=tr[x].v;else{ans+=tr[x].v;for(int i=0;i<4;i++)q.push(tr[x].child[i]);}}return ans;
}
void solve(){cin>>n;o=0;for(int i=0;i<n;i++){for(int j=0;j<n;j++)cin>>a[i][j];}int u=dfs(0,0,n);string ans=bfs(u);int len=ans.length();if(len%4==1)ans="000"+ans;if(len%4==2)ans="00"+ans;if(len%4==3)ans="0"+ans;//cout<<"ans="<<ans<<'\n';for(int i=0;i<ans.length();i+=4){int t=0;for(int j=0,p=8;j<4;j++,p/=2)t+=p*(ans[i+j]-'0');if(t<10)cout<<t;else cout<<mp[t];}cout<<'\n';
}
signed main(){mp[10]="A";mp[11]="B";mp[12]="C";mp[13]="D";mp[14]="E";mp[15]="F";ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>T;while(T--)solve();
}


按道理来说我的run time(46ms)应该是更小的,但是还是跑的比指针(19ms)写的慢
可能是我常数比较大吧hh

ZOJ 1788 Quad Trees相关推荐

  1. 427. Construct Quad Tree

    1,题目要求 We want to use quad trees to store an N x N boolean grid. Each cell in the grid can only be t ...

  2. LeetCode #427 - Construct Quad Tree

    题目描述: We want to use quad trees to store an N x N boolean grid. Each cell in the grid can only be tr ...

  3. 【LeetCode】427. Construct Quad Tree 建立四叉树

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  4. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  5. POJ 超详细分类

    POJ 各题算法 1000    A+B Problem            送分题     49%    2005-5-7 1001    Exponentiation         高精度   ...

  6. HBase与时空索引技术

    title: HBase与时空索引技术 date: 2021-05-13 10:04:05 tags: HBase GIS 所谓时空数据,顾名思义,包含了两个维度的信息:空间信息与时间信息.空间信息, ...

  7. 关于寻路算法的一些思考(2):Heuristics 函数

    启发式函数h(n)告诉A*从任何结点n到目标结点的最小代价评估值.因此选择一个好的启发式函数很重要. 启发式函数在A* 中的作用 启发式函数可以用来控制A*的行为. 一种极端情况,如果h(n)是0,则 ...

  8. elasticsearch 导入基础数据并索引之 geo_shape

    我们看到的图形, 实际是由点来完成的, 有2种类型的格子模型可用于地理星座, 默认使用的是geoHash, 还有一种4叉树(quad trees), 也可用于 判断形状与索引的形状关系 1), int ...

  9. [转]关于寻路算法的一些思考

    关于寻路算法的一些思考(1):A*算法介绍 物体的移动算法似乎显得很简单,然而寻路规划问题却十分复杂.考虑下面这个例子: 这个单位的初始位置在地图的下方,想要到达地图的顶部.如果物体所能侦测到的地方( ...

  10. 最近邻搜索|Nearest neighbor search

    维基百科:https://en.wikipedia.org/wiki/Nearest_neighbor_search 觉得整理的挺好,翻译 最近邻搜索( NNS ) 作为**邻近搜索(proximit ...

最新文章

  1. hdu 1548 A strange lift
  2. javafx + jfoenix相关学习资料地址整理
  3. 国内首篇云厂商 Serverless 论文入选全球顶会:突发流量下,如何加速容器启动?
  4. STM32 串行通信原理
  5. matplotlib 中文显示 的问题
  6. 详解停车位检测论文:Attentional Graph Neural Network for Parking-slot Detection
  7. 设计模式之对象池模式
  8. MySQL5.7报错[ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock的解决方法
  9. 【报告分享】2021年数字化浪潮在中国的发展和实践.pdf(附下载链接)
  10. C#静态方法与非静态方法的比较 <转载>
  11. python mysql connector
  12. 熟练使用 Elastic Job系列之作业分片策略(五)
  13. 商业创业计划书PPT模板
  14. 一文读懂APU/BPU/CPU/DPU/EPU/FPU/GPU等处理器
  15. 斗地主(二)———创建扑克牌基类枚举, 牌库,出牌规则
  16. 华为跨域bgp_跨域组播---BGP+MSDP
  17. 《转贴》机器学习 机器视觉 图像处理 牛人牛站
  18. python爬虫获取携程旅游景点评分和评论
  19. oppo计算机怎么添加到桌面,OPPO怎么把快捷方式添加到桌面 OPPO把快捷方式添加到桌面方法...
  20. bzoj3694:最短路(最短路树+并查集)

热门文章

  1. android高仿ios键盘,iOS仿工商银行app自定义键盘
  2. VMware 8安装Mac OS X 10.7
  3. 基于Android的医院预约挂号系统
  4. 学会如何学习 - 成为更好的终身学习者
  5. 百度地图 地图级别 是什么意思
  6. win10开始菜单打不开_win10开始菜单没反应的解决方法教程
  7. 什么样的女人才是老婆(感动)
  8. 前端1——html笔记
  9. win7还原关闭计算机,怎么关闭系统还原,教您win7怎么关闭系统还原
  10. 介绍dbt,ETL和ELT Disrupter