博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2201 构造
阅读量:6908 次
发布时间:2019-06-27

本文共 690 字,大约阅读时间需要 2 分钟。

这个题目的构造方法应该还算是很好想的,先给a按照从小到大排序,然后按顺序插入数据,构造一棵二叉查找树,而且50000的数据,nlogn的做法,应该还是很好的。不过这个题目的编码比想象中要麻烦一点,并且编码完成后居然返回了一个tle。

表示不能理解,生成了一个大数据后,发现如果排序后k也有序,那么就会二叉树退化,n*n的复杂度。简单画画图可以找到一个优化,先找要插入数据的后继或者前驱,然后从哪个位置开始插入,那么可以大大稳定复杂度。找这个东西的工作就交给set来完成即可。

 

#include 
#include
#include
#include
#include
using namespace std;const int maxn=5e4+9;int lon,f[maxn];struct D{ int a,k,id; bool operator <(const D & xx) const { return k
s;int maxm;void insert(int t){// cout<
<
data[maxm].k) { root=f[data[maxm].id]; maxm=t; } else root=f[s.lower_bound(data[t])->id]; } else { root=1; maxm=1; } while(tr[root].id!=0) {// cout<
<

 

 

转载地址:http://ilgdl.baihongyu.com/

你可能感兴趣的文章
在Linux上的虚拟机上启动Oracle上报ORA-00845: MEMORY_TARGET not supported on this system的问题解决...
查看>>
《Cisco IOS XR技术精要》一4.3 配置管理组件
查看>>
《社会智能与综合集成系统》—第2章参考文献
查看>>
《Adobe Photoshop CS5中文版经典教程(全彩版)》—第2课2.4节在Camera Raw中调整颜色...
查看>>
《Adobe Premiere Pro视频编辑指南(第2版)》——水银回放引擎
查看>>
从零开始打造个人专属命令行工具集——yargs 完全指南
查看>>
Spark源码分析 -- SchedulableBuilder
查看>>
《HTML5+CSS3网页设计入门必读》——第1章 理解Web的工作方式1.1 HTML和WWW简史
查看>>
真的吗?算法谋取暴利,让你多花钱
查看>>
Linux 内核测试和调试(5)
查看>>
指针与数组
查看>>
Ubuntu 14.04中修复默认启用HDMI后没有声音的问题
查看>>
《C++面向对象高效编程(第2版)》——1.12 OOP 范式和语言
查看>>
《Java遗传算法编程》—— 1.4 进化计算的优势
查看>>
《R语言数据挖掘》——2.3 混合关联规则挖掘
查看>>
Commons IO 官方文档
查看>>
《精通Linux设备驱动程序开发》——第1章 引言 1.1演进
查看>>
如何使用 Kali Linux 黑掉 Windows
查看>>
《趣题学算法》—第0章0.4节算法的正确性
查看>>
《iOS 8案例开发大全》——实例008 实现断点调试
查看>>