传送门 这道题就是裸的平衡树的题目,操作都是模板,也就不多说了,重在代码。
SBT:
#include
struct SBT {
int v, sz, ch[2 ], cnt;
} t[300005 ];
int n, cnt, root;
#define Upd(k) {\
t[k].sz = t[t[k].ch[0 ]].sz + t[t[k].ch[1 ]].sz + t[k].cnt;\
}
void rot(int &k, bool f) {
int p = t[k].ch[f]; t[k].ch[f] = t[p].ch[!f]; t[p].ch[!f] = k;
Upd(k); Upd(p); k = p;
}
inline void mt(int &k,bool f)
{
if (!k) return ;
if (t[t[k].ch[f^1 ]].sz < t[t[t[k].ch[f]].ch[f]].sz) rot(k, f);
else if (t[t[k].ch[f^1 ]].sz < t[t[t[k].ch[f]].ch[f^1 ]].sz) { rot(t[k].ch[f], f^1 ); rot(k, f); }
else return ;
mt(t[k].ch[f],f);
mt(k,f);
}
void Ins(int &k, int x) {
if (!k) {k = ++ cnt; t[k].sz = t[k].cnt = 1 ; t[k].v = x; return ; }
++ t[k].sz;
if (t[k].v == x) {++ t[k].cnt; return ;}
Ins(t[k].ch[t[k].v < x], x);
mt(k, t[k].v < x);
}
int Del(int &k, int x) {
if (!k) return k;
int tmp;
if (t[k].v == x) {
if (t[k].cnt > 1 ) {-- t[k].cnt; --t[k].sz; return k;}
else if (!(t[k].ch[0 ]*t[k].ch[1 ])) {k = t[k].ch[0 ]+t[k].ch[1 ];}
else { tmp = Del(t[k].ch[0 ], x+1 ); t[k].cnt = t[tmp].cnt; t[k].v = t[tmp].v; Upd(k); return k; }
}
else if ((t[k].v < x && !t[k].ch[1 ]) || (t[k].v > x && ! t[k].ch[0 ])) { tmp = k; k = t[k].ch[0 ]; Upd(k); return tmp; }
else tmp = Del(t[k].ch[t[k].v < x], x);
Upd(k); return tmp;
}
int Ran(int k,int x) {
if (k==0 )return 0 ;
if (t[k].v==x)return t[t[k].ch[0 ]].sz+1 ;
else if (x>t[k].v)
return t[t[k].ch[0 ]].sz+t[k].cnt+Ran(t[k].ch[1 ],x);
else return Ran(t[k].ch[0 ],x);
}
int Kth(int k,int x) {
if (k==0 )return 0 ;
if (x<=t[t[k].ch[0 ]].sz)
return Kth(t[k].ch[0 ],x);
else if (x>t[t[k].ch[0 ]].sz+t[k].cnt)
return Kth(t[k].ch[1 ],x-t[t[k].ch[0 ]].sz-t[k].cnt);
else return t[k].v;
}
int ans;
void pred(int k,int x) {
if (k==0 )return ;
if (t[k].v1],x);
} else pred(t[k].ch[0 ],x);
}
void succ(int k,int x) {
if (k==0 )return ;
if (t[k].v>x) {
ans=k;
succ(t[k].ch[0 ],x);
} else succ(t[k].ch[1 ],x);
}
char c, f;
inline void GET(int &n) {
n = 0 ; f = 1 ;
do {c = getchar(); if (c == '-' ) f = -1 ;} while (c > '9' || c < '0' );
while (c >= '0' && c <= '9' ) {n=n*10 +c-'0' ;c=getchar();}
n *= f;
}
int main() {
GET(n);
int opt,x;
for (int i=1 ; i<=n; i++) {
GET(opt); GET(x);
switch (opt) {
case 1 : Ins(root,x); break ;
case 2 : Del(root,x); break ;
case 3 : printf ("%d\n" ,Ran(root,x)); break ;
case 4 : printf ("%d\n" ,Kth(root,x)); break ;
case 5 : ans=0 ; pred(root,x); printf ("%d\n" ,t[ans].v); break ;
case 6 : ans=0 ; succ(root,x); printf ("%d\n" ,t[ans].v); break ;
}
}
return 0 ;
}
Treap:
#include
#include
#include
using namespace std ;
struct data {
int ch[2 ], v, sz, rnd, cnt;
} tr[300005 ];
int n,size,root,ans,sd = 2333 ;
inline int ran() { return sd = (sd*sd+sd)%(10003 ); }
inline void Upd(int k) {
tr[k].sz = tr[tr[k].ch[0 ]].sz + tr[tr[k].ch[1 ]].sz + tr[k].cnt;
}
void rot(int &k, bool f) {
int t = tr[k].ch[f]; tr[k].ch[f] = tr[t].ch[!f]; tr[t].ch[!f] = k;
Upd(k); Upd(t); k = t;
}
void insert(int &k,int x) {
if (k==0 ) { size++; k=size; tr[k].sz=tr[k].cnt=1 ; tr[k].v=x; tr[k].rnd=ran(); return ; }
tr[k].sz++;
if (tr[k].v==x) { tr[k].cnt++; return ; }
bool f = x>tr[k].v;
insert(tr[k].ch[f],x);
if (tr[tr[k].ch[f]].rndvoid del(int &k,int x) {
if (k==0 )return ;
if (tr[k].v==x) {
if (tr[k].cnt>1 ) { tr[k].cnt--; tr[k].sz--; return ; }
if (tr[k].ch[0 ]*tr[k].ch[1 ]==0 )k=tr[k].ch[0 ]+tr[k].ch[1 ];
else rot(k, tr[tr[k].ch[0 ]].rnd >= tr[tr[k].ch[1 ]].rnd), del(k, x);
} else tr[k].sz--, del(tr[k].ch[x>tr[k].v], x);
}
int get_rank(int k,int x) {
if (k==0 )return 0 ;
if (tr[k].v==x)return tr[tr[k].ch[0 ]].sz+1 ;
else if (x>tr[k].v)
return tr[tr[k].ch[0 ]].sz+tr[k].cnt+get_rank(tr[k].ch[1 ],x);
else return get_rank(tr[k].ch[0 ],x);
}
int get_kth(int k,int x) {
if (k==0 )return 0 ;
if (x<=tr[tr[k].ch[0 ]].sz)
return get_kth(tr[k].ch[0 ],x);
else if (x>tr[tr[k].ch[0 ]].sz+tr[k].cnt)
return get_kth(tr[k].ch[1 ],x-tr[tr[k].ch[0 ]].sz-tr[k].cnt);
else return tr[k].v;
}
void pred(int k,int x) {
if (k==0 )return ;
if (tr[k].v1],x);
} else pred(tr[k].ch[0 ],x);
}
void succ(int k,int x) {
if (k==0 )return ;
if (tr[k].v>x) {
ans=k;
succ(tr[k].ch[0 ],x);
} else succ(tr[k].ch[1 ],x);
}char c, f;
inline void GET(int &n) {
n = 0 ; f = 1 ;
do {c = getchar(); if (c == '-' ) f = -1 ;} while (c > '9' || c < '0' );
while (c >= '0' && c <= '9' ) {n=n*10 +c-'0' ;c=getchar();}
n *= f;
}
int main() {
GET(n);
int opt,x;
for (int i=1 ; i<=n; i++) {
GET(opt); GET(x);
switch (opt) {
case 1 : insert(root,x); break ;
case 2 : del(root,x); break ;
case 3 : printf ("%d\n" ,get_rank(root,x)); break ;
case 4 : printf ("%d\n" ,get_kth(root,x)); break ;
case 5 : ans=0 ; pred(root,x); printf ("%d\n" ,tr[ans].v); break ;
case 6 : ans=0 ; succ(root,x); printf ("%d\n" ,tr[ans].v); break ;
}
}
return 0 ;
}
Splay
#include
#define MAXN 300005
struct node {
int v, cnt, sz, ch[2 ], f;
}t[MAXN];
int rt, sz, n;
#define Upd(r) {t[r].sz = t[t[r].ch[0]].sz + t[t[r].ch[1]].sz + t[r].cnt;}
void rot(int x)
{
int y = t[x].f, z = t[y].f;
bool f = (t[y].ch[1 ] == x);
t[y].ch[f] = t[x].ch[f^1 ];
if (t[y].ch[f]) t[t[y].ch[f]].f = y;
t[x].ch[f^1 ] = y; t[y].f = x;
t[x].f = z;
if (z) t[z].ch[t[z].ch[1 ]==y] = x;
Upd(y);
}
void Spaly(int r, int tp) {
for (int y, z; (y = t[r].f) != tp; rot(r)) {
z = t[y].f;
if (z == tp) continue ;
if ( (t[z].ch[0 ] == y) == (t[y].ch[0 ] == r) ) rot(y);
else rot(r);
}
if (!tp) rt = r; Upd(r);
}
void Ins(int r, int x) {
int y = 0 ;
while (r && t[r].v != x) { y = r; r = t[r].ch[x > t[r].v]; }
if (r) ++ t[r].cnt;
else {
r = ++ sz; t[r].sz = t[r].cnt = 1 ;
t[r].v = x; t[r].f = y; if (y) t[y].ch[x > t[y].v] = r;
}
Spaly(r, 0 );
}
void Find(int v) {
int x = rt; if (!x) return ;
while (t[x].ch[v > t[x].v] && t[x].v != v) x = t[x].ch[v > t[x].v];
Spaly(x, 0 );
}
int Ran(int v) {
Find(v);
return t[t[rt].ch[0 ]].sz;
}
int Kth(int x)
{
int y=rt,p;
if (x>t[rt].sz)return 0 ;
while (1 )
{
p=t[y].ch[0 ];
if (t[p].sz+t[y].cnt1];
}
else if (t[p].sz>=x) y=p;
else return t[y].v;
}
}
int Nxt(int x, bool f)
{
Find(x);
if ((t[rt].v>x&&f)||(t[rt].vreturn rt;
int p = t[rt].ch[f];
while (t[p].ch[f^1 ]) p = t[p].ch[!f];
return p;
}
void Del(int v) {
int p = Nxt(v, 0 ), s = Nxt(v, 1 );
Spaly(p, 0 ); Spaly(s, p);
p = t[s].ch[0 ];
if (t[p].cnt > 1 ) -- t[p].cnt, Spaly(p, 0 );
else t[s].ch[0 ] = 0 ;
}
char c, f;
inline void GET(int &n) {
n = 0 ; f = 1 ;
do {c = getchar(); if (c == '-' ) f = -1 ;} while (c > '9' || c < '0' );
while (c >= '0' && c <= '9' ) {n=n*10 +c-'0' ;c=getchar();}
n *= f;
}
int main() {
GET(n);
int opt,x;
Ins(rt, -0x7fffffff ); Ins(rt, +0x7fffffff );
for (int i=1 ; i<=n; i++) {
GET(opt); GET(x);
switch (opt) {
case 1 : Ins(rt,x); break ;
case 2 : Del(x); break ;
case 3 : printf ("%d\n" ,Ran(x)); break ;
case 4 : printf ("%d\n" ,Kth(x+1 )); break ;
case 5 : printf ("%d\n" ,t[Nxt(x, 0 )].v); break ;
case 6 : printf ("%d\n" ,t[Nxt(x, 1 )].v); break ;
}
}
return 0 ;
}
你可能感兴趣的:(平衡树-区间树)
第一场雪
岁月静好_nx
早晨起来,外面白茫茫的一片,总算是下雪了,这还是今年第一场雪呢!走在路上,踩着雪“咯吱咯吱”的,空气很湿润。树上、草坪上、屋顶上都落了白白的一层,天上还零星漂着几点雪。慢慢走在路上,呼吸着清新的空气,感受着冬天的美好,心情也好多了。
山东大学小树林支教调研团青青仓木队——翟晓楠
山东大学青青仓木队
过了半年,又一次启程,又一次回到支教的初心之地。比起上一次的试探与不安,我更多了一丝稳重与熟练。心境、处境也都随着半个学期的过去而变得不同,半个学期中,身体上的,心理上的,太多的逆境让我变得步履维艰,曲曲折折,弯弯绕绕,我仿佛打不起精神,没有胃口,没有动力。感觉走的不顺畅的时候,支教这个旅程,给了我力量。自告奋勇承担起队长这一职务的我,从组织时的复杂和困难的经历,协调各种问题,从无到有,和校长和队
2018/02/12
Tracy_zhang
人生并不在于获取,更在于放得下。放下一粒种子,收获一棵大树;放下一处烦恼,收获一个惊喜;放下一种偏见,收获一种幸福;放下一种执著,收获一种自在。放下既是一种理性抉择,也是一种豁达美。只要看得开放得下,何愁没有快乐的春莺在啼鸣,何愁没有快乐的泉溪在歌唱,何愁没有快乐的鲜花绽放!
春季养肝正当时
dxn悟
重温快乐2023年2月4日立春。春天来了,春暖花开,小鸟欢唱,那在这样的季节我们如何养肝呢?自然界的春季对应中医五行的木,人体五脏肝属木,“木曰曲直”,是以树干曲曲直直地向上、向外伸长舒展的生发姿态,来形容具有生长、升发、条达、舒畅等特征的食物及现象。根据中医天人相应的理念,肝五行属木,喜条达,主疏泄,与春天相应,所以春天最适合养肝。养肝首先要少生气,因为肝喜条达恶抑郁。人体五志肝为怒,生气发怒最
每日算法&面试题,大厂特训二十八天——第二十天(树)
肥学
⚡算法题⚡面试题每日精进 java 算法 数据结构
目录标题导读算法特训二十八天面试题点击直接资料领取导读肥友们为了更好的去帮助新同学适应算法和面试题,最近我们开始进行专项突击一步一步来。上一期我们完成了动态规划二十一天现在我们进行下一项对各类算法进行二十八天的一个小总结。还在等什么快来一起肥学进行二十八天挑战吧!!特别介绍小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章
Python爬虫解析工具之xpath使用详解
eqa11
python 爬虫 开发语言
文章目录Python爬虫解析工具之xpath使用详解一、引言二、环境准备1、插件安装2、依赖库安装三、xpath语法详解1、路径表达式2、通配符3、谓语4、常用函数四、xpath在Python代码中的使用1、文档树的创建2、使用xpath表达式3、获取元素内容和属性五、总结Python爬虫解析工具之xpath使用详解一、引言在Python爬虫开发中,数据提取是一个至关重要的环节。xpath作为一门
2018-12-29
枫叶红时总多离别
2018年12月29日星期六昨天老师就告诉我们,今天下午不用上课,是图书漂流活动会。我觉得很兴奋,好期待。到了下午,我帮好忙就到外面去买书,刚一出去,就有一大帮的大哥哥、大姐姐围着我问要不要买书,买一本书送一颗糖。我看到了一本《小老虎比上树》的书,问大姐姐多少钱,大姐姐说这本书原价13块,现在便宜4块钱也就是9块钱卖给你,我就把一张10块钱给她找,她找了我一块钱。我现在想想我今天只带了10块钱,现
似乎老是忘记什么东西
灰台
S带上了耳机,眼前的一切都与她隔绝开来。虽是初春的好天气,花都开的正鲜艳,行人也都驻足欣赏,还有不少怀着好心情的年轻人在花树下打闹。不过S似乎并不在意这些,连耳机传来的rap也没有调动起她的兴致。一瞬间,心脏好像变成了黑洞,“啊,我身边还有几个人呢,似乎没有了吧”。阳光的温度覆盖到了脖子上,S抬头看了看开满花的树,“我妈好像还挺喜欢花的”,S随手拍了一张照片,微信发到自己一家三口的群里。过了一会,
《在战“疫”中成长致敬生活》观后感
梅子刘的刀
(作者:周晨)今天上午,我看了“我是接班人”网络大课堂《在战役中成长致敬生活》。有很多人拿出自己攒下的钱,默默地捐给了武汉,有几千块钱的、有几万块钱的,也有十几万块钱的。连小朋友也把自己的压岁钱捐给了武汉。有名环卫工人把自己五年的积蓄全部捐给了武汉。有名外卖小哥为医护人员买鞋子送吃的。还有已经治愈出院的新型肺炎病人捐了400毫升的血浆。还有位叫大树的叔叔,虽然他没有钱,但是他地里有蔬菜,捐了几大卡
2019-08-16
希望在东方
《春游荣华山》春游荣华山,乍暖还寒。青苔路,石阶险。山路弯上弯!为寻古寺往幽探。细雨已润江南岸,初春芳草现。老树新芽冒枝端,人间又过到新年。今游荣华山,树茂参天,古寺悠闲。细雨飘落发端!三眼井旁,投币许心愿,并祷一世安然。更喜大女明事端,应心安,放开颜。修竹静默,雨中吐心愿。待得春风浩吹时,春笋节节攀。图片发自App图片发自App图片发自App
一颗小桃树
李蓉乐平市湾头中小学
当“凹”同“洼”的时侯,才读(wa,平声),他不叫贾平洼(贾,原名贾平娃),非要写作贾平凹。为了表示对他的尊重,对文学的尊重,对文化人的尊重。如果不是帮闺蜜的儿子修改作文,我也不会发现贾平凹叫贾平娃。以下是摘选他的文章《一棵小桃树》:可我的小桃树儿,一颗“仙桃”的种子,却开得太白了,太淡了,那瓣片儿单薄得似纸做的,没有肉的感觉,没有粉的感觉,像患了重病的少女,苍白白的脸,又偏苦涩涩地笑着。雨还在下
安居士/海滨:落雪无声
海滨公园
安居士/海滨:落雪无声落雪无声作者:安居士/海滨安居士/海滨:落雪无声寒风凛冽裹挟着尘埃横扫大地上所有河流山脉落木萧萧枯叶瑟瑟虎吼龙吟一夜劲舞狂歌驱散多日不散的雾霾安居士/海滨:落雪无声你从浩渺天宇翩然飞来内心深藏着纯洁温柔的爱飘飘洒洒纷纷扬扬而来宛若一群美丽的仙女下凡袅袅婷婷尽显万千仪态安居士/海滨:落雪无声我从迷离的梦境里醒来临窗远眺山河间表里澄澈天地茫茫白雪皑皑琼林玉枝银桃挤挤挨挨似千树万树
祭坛随笔
阿门不热
街角右拐,便是北宋的祠堂。平日里冉冉的佛香被雨水打湿了,一地枯黄的银杏显得平静哀伤,如同一地被踩碎的阳光。我喜欢在这样的阴暗里吞噬古代的讯息,那遥远的来自过去的历史风潮。谢却茶扉,轻轻地抚上墙壁,寒风不御,无数深浅的纹路交织在心底,如同一把古琴不堪重负的尾音。寂寞锁朱门,香客们已是三三两两,巨大的雨帘让天空失掉了颜色,灰蒙蒙掉在阁楼一角,沉稳不惊地暗下去,再暗下去......古树上红色的挂牌像一块
2024.9.14 Python,差分法解决区间加法,消除游戏,压缩字符串
RaidenQ
python 游戏 开发语言 算法 力扣
1.区间加法假设你有一个长度为n的数组,初始情况下所有的数字均为0,你将会被给出k个更新的操作。其中,每个操作会被表示为一个三元组:[startIndex,endIndex,inc],你需要将子数组A[startIndex…endIndex](包括startIndex和endIndex)增加inc。请你返回k次操作后的数组。示例:输入:length=5,updates=[[1,3,2],[2,4,
2024.8.22 Python,链表两数之和,链表快速反转,二叉树的深度,二叉树前中后序遍历,N叉树递归遍历,翻转二叉树
RaidenQ
python 链表 开发语言
1.链表两数之和输入:l1=[2,4,3],l2=[5,6,4]输出:[7,0,8]解释:342+465=807.示例2:输入:l1=[0],l2=[0]输出:[0]示例3:输入:l1=[9,9,9,9,9,9,9],l2=[9,9,9,9]输出:[8,9,9,9,0,0,0,1]昨天的这个题,用自己的办法写的麻烦的要死,然后刚才一看chat归类的办法,感觉自己像个智障。classListNode
山海师秘录(草稿小段)
白淼清流
“阿弱,山北头还有两树好梨!我们给你留着呢,你快去采了吧,我们玩会儿就回家了。”几个伙伴都望着宁虚,其中一个胖胖喊道。宁虚望过去:“知道啦!你们趁着路好走,赶紧回家吧,这天一会儿怕是要下雨!”说罢,宁虚紧了紧后背的竹筐,迈步向山上走去。今天是村里采梨的最后一天,最多倒晚饭时,剩下的梨子便不许村民再采摘,熟透了便掉到地上,当做下次结果的肥料。宁虚顺着工匠铺出的简陋石道,却没有去同伴所说的山北头,而是
Python算法L5:贪心算法
小熊同学哦
Python算法 算法 python 贪心算法
Python贪心算法简介目录Python贪心算法简介贪心算法的基本步骤贪心算法的适用场景经典贪心算法问题1.**零钱兑换问题**2.**区间调度问题**3.**背包问题**贪心算法的优缺点优点:缺点:结语贪心算法(GreedyAlgorithm)是一种在每一步选择中都采取当前最优或最优解的算法。它的核心思想是,在保证每一步局部最优的情况下,希望通过贪心选择达到全局最优解。虽然贪心算法并不总能得到全
《 C++ 修炼全景指南:九 》打破编程瓶颈!掌握二叉搜索树的高效实现与技巧
Lenyiin
C++ 修炼全景指南 技术指南 c++ 算法 stl
摘要本文详细探讨了二叉搜索树(BinarySearchTree,BST)的核心概念和技术细节,包括插入、查找、删除、遍历等基本操作,并结合实际代码演示了如何实现这些功能。文章深入分析了二叉搜索树的性能优势及其时间复杂度,同时介绍了前驱、后继的查找方法等高级功能。通过自定义实现的二叉搜索树类,读者能够掌握其实际应用,此外,文章还建议进一步扩展为平衡树(如AVL树、红黑树)以优化极端情况下的性能退化。
我家纱窗上全是杨树毛子
viiiiiiiiito
1“所以你脖…嘶…子上的伤不是你自己抓出来的喽?”永河喜欢在说话说到一半的时候吸烟,这总让他产生一些惊人的断句。”恩,不是给你说了么,方易在厕所门口就和别人打起来了,从厕所一路打到酒吧门口,他说我是去劝架,被误伤的。”“后来呢?”“后来就打车回家了啊。”“我是说打…嘶…架,赢了输了?“”完全不记得了,方易连他打的是谁都不知道,我看我这浑身疼的,估计是输了。“”垃圾,要不是我赶飞机昨天我们肯定…”“
《 C++ 修炼全景指南:十 》自平衡的艺术:深入了解 AVL 树的核心原理与实现
Lenyiin
C++ 修炼全景指南 技术指南 c++ 数据结构 stl
摘要本文深入探讨了AVL树(自平衡二叉搜索树)的概念、特点以及实现细节。我们首先介绍了AVL树的基本原理,并详细分析了其四种旋转操作,包括左旋、右旋、左右双旋和右左双旋,阐述了它们在保持树平衡中的重要作用。接着,本文从头到尾详细描述了AVL树的插入、删除和查找操作,配合完整的代码实现和详尽的注释,使读者能够全面理解这些操作的执行过程。此外,我们还提供了AVL树的遍历方法,包括中序、前序和后序遍历,
【树一线性代数】005入门
Owlet_woodBird
算法
Index本文稍后补全,推荐阅读:https://blog.csdn.net/weixin_60702024/article/details/141874376分析实现总结本文稍后补全,推荐阅读:https://blog.csdn.net/weixin_60702024/article/details/141874376已知非空二叉树T的结点值均为正整数,采用顺序存储方式保存,数据结构定义如下:t
学点警句
处世须待春风
一个人只要知道自己去哪里,全世界都会给他让步。—爱默生—你日渐平庸,甘于平庸,将继续平庸。—《以自己的方式过一生》—不怕面对阴影,因为知道身后有阳光。那些你很冒险的梦,我陪你去疯。《你是最好的自己》—其实人跟树是一样的,越是向往高处的阳光,它的根就越要伸向黑暗的地底。—尼采—
中学生父母的修养
再简单不过了
我是一个中学生的父母,我有许多心情,偶尔彷徨,偶尔愤怒,偶尔欣喜,偶尔还会感伤,我彷徨的是。他仿佛瞬间长大了,失去了我的掌控,从而愤怒他不再和我那么亲近,第一次告诉我说,你根本就不懂我,欣喜的是,我经常看到的小一些人,已经以我察觉不到的速度慢慢的蜕变成一棵树,虽然不够枝繁叶茂,但是已经有很多分支,绿叶还有开叉了,我感觉自己并没有老去,但孩子却已经有自己的世界。他会说,不准随便进他的房间,不要乱问班
《流年一曲成殇》连载47
方冷颜
第四十七章青葱岁月宋曲殇躺在床上,看着寝室的灯已经熄灭了,在上铺的好处大概就是可以看到窗外的景。军训基地在郊区,所以自然环境特别的好,是没有受到污染的地区,晚上真的可以看到满天繁星。一轮弯月挂在天空,月光透过窗户,照在窗外的柏树上,那挺拔的柏树像守卫银河系的战士。宋晟波的舞,就像电影的回放,让她大吃一惊。生活中似乎充满着惊喜,发现,就是一种惊喜。付流年的歌究竟是什么?她好想找个有网络的地方搜一番。
酒店床装车出货
臧冰
一百多套的酒店床、圆床,床垫终于出货了,可惜还没装完,明天将继续出货,辛苦了各位小伙伴们!图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App图片发自App我是两个孩子的宝妈,经营着一间软体家具厂,“伊力威斯”是我们的品牌。这是我的第178篇原创日记。栽一棵树最好的时间是十年前跟今天,写日记亦是如此,抓住今天,我们将收获更精彩的人生!
leetcode-617. 合并二叉树
manba_
leetcode hot100 leetcode 算法
题目描述给你两棵二叉树:root1和root2。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为null的节点将直接作为新二叉树的节点。返回合并后的二叉树。注意:合并过程必须从两个树的根节点开始。示例1:输入:root1=[1,3,2,
轻风拂柳《春意萦怀》之六
轻风拂柳
图/来自网络轻风拂柳《春意萦怀》之六轻风拂柳《春意萦怀》原韵烂熳芳林赏丽容,春光明媚盼相逢。娇桃绽蕊仙姿艳,淑杏凝脂玉色浓。对对黄莺穿树影,双双彩蝶逐花踪。风情小雅灵犀有,景美难将笔墨封。图/来自网络步轻风拂柳《春意萦怀》原韵(一)诗·时就三月阳春思丽容,花红柳绿也相逢。不歆桃蕊风姿艳,只慕书斋墨色浓。期翼共窗难觅影,时望携手苦寻踪。天涯海角君何有?一颗痴心哪日封?(二)诗·大漠孤烟滴翠丛林展媚容
《爱情》
杜文霞
杜文霞坚持原创分享第39天(20190214)图片发自App对爱情的认识我越来越清晰了。真正的爱情是成年人的游戏,双方在关系中是平等的。就像舒婷《致橡树》中写的:我如果爱你——绝不学痴情的鸟儿,为绿荫重复单调的歌曲;必须是你近旁的一株木棉,作为树的形象和你站在一起。我们共享雾霭、流岚、虹霓。仿佛永远分离,却又终身相依。爱情中的爱是相互的,是爱与被爱的流动,不是控制和占有。如果一方总觉得另一方“应该
《我的职业是小说家》
simple梦
《我的职业是小说家》:《我的职业是小说家》是村上春树前所未有的自传性作品,历时六年完成。一个人,写作三十五年,十三部长篇小说,超过五十种语言译本。虽然拥有享誉世界的知名度,但关于村上春树,许多事情始终包裹在神秘的面纱中:他是怎样下定决心走上职业小说家之路?对他来说,人生中幸福的事是什么?究竟如何看待芥川奖与诺贝尔文学奖……小说家看似风光,却是份孤独的职业。三十五年来,村上春树在孤独中编织着美妙动人
因为付出,所以精彩
江南雨1
新年第一天,我哪里都没有去。就在家里读书写字,想一想我的人生很平淡:童年是不懂忧虑的。小时候在家里,有父母长辈的疼爱。六岁上的学,那年祖父过世了。祖母继续疼着我,天天给我讲故事,在物质匮乏的年代还能给我做骨头粥、蒸鸡蛋之类的美食。父母虽然贫困,但是只要我需要的学习资料都会给我买,我是1981年开始读小学一年级,小学四五年级的时候父亲就给我订阅了《中国少年报》。家里有不少果树,每年都有梨子、龙眼、番
多线程编程之卫生间
周凡杨
java 并发 卫生间 线程 厕所
如大家所知,火车上车厢的卫生间很小,每次只能容纳一个人,一个车厢只有一个卫生间,这个卫生间会被多个人同时使用,在实际使用时,当一个人进入卫生间时则会把卫生间锁上,等出来时打开门,下一个人进去把门锁上,如果有一个人在卫生间内部则别人的人发现门是锁的则只能在外面等待。问题分析:首先问题中有两个实体,一个是人,一个是厕所,所以设计程序时就可以设计两个类。人是多数的,厕所只有一个(暂且模拟的是一个车厢)。
How to Install GUI to Centos Minimal
sunjing
linux Install Desktop GUI
http://www.namhuy.net/475/how-to-install-gui-to-centos-minimal.html
I have centos 6.3 minimal running as web server. I’m looking to install gui to my server to vnc to my server. You can insta
Shell 函数
daizj
shell 函数
Shell 函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。
shell中函数的定义格式如下:
[function] funname [()]{
action;
[return int;]
}
说明:
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回
Linux服务器新手操作之一
周凡杨
Linux 简单 操作
1.whoami
当一个用户登录Linux系统之后,也许他想知道自己是发哪个用户登录的。
此时可以使用whoami命令。
[ecuser@HA5-DZ05 ~]$ whoami
e
浅谈Socket通信(一)
朱辉辉33
socket
在java中ServerSocket用于服务器端,用来监听端口。通过服务器监听,客户端发送请求,双方建立链接后才能通信。当服务器和客户端建立链接后,两边都会产生一个Socket实例,我们可以通过操作Socket来建立通信。
首先我建立一个ServerSocket对象。当然要导入java.net.ServerSocket包
ServerSock
关于框架的简单认识
西蜀石兰
框架
入职两个月多,依然是一个不会写代码的小白,每天的工作就是看代码,写wiki。
前端接触CSS、HTML、JS等语言,一直在用的CS模型,自然免不了数据库的链接及使用,真心涉及框架,项目中用到的BootStrap算一个吧,哦,JQuery只能算半个框架吧,我更觉得它是另外一种语言。
后台一直是纯Java代码,涉及的框架是Quzrtz和log4j。
都说学前端的要知道三大框架,目前node.
You have an error in your SQL syntax; check the manual that corresponds to your
林鹤霄
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option,changed_ids ) values('0ac91f167f754c8cbac00e9e3dc372
MySQL5.6的my.ini配置
aigo
mysql
注意:以下配置的服务器硬件是:8核16G内存
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=D:/mysql-5.6.21-win
mysql 全文模糊查找 便捷解决方案
alxw4616
mysql
mysql 全文模糊查找 便捷解决方案
2013/6/14 by 半仙
[email protected]
目的: 项目需求实现模糊查找.
原则: 查询不能超过 1秒.
问题: 目标表中有超过1千万条记录. 使用like '%str%' 进行模糊查询无法达到性能需求.
解决方案: 使用mysql全文索引.
1.全文索引 : MySQL支持全文索引和搜索功能。MySQL中的全文索
自定义数据结构 链表(单项 ,双向,环形)
百合不是茶
单项链表 双向链表
链表与动态数组的实现方式差不多, 数组适合快速删除某个元素 链表则可以快速的保存数组并且可以是不连续的
单项链表;数据从第一个指向最后一个
实现代码:
//定义动态链表
clas
threadLocal实例
bijian1013
java thread java多线程 threadLocal
实例1:
package com.bijian.thread;
public class MyThread extends Thread {
private static ThreadLocal tl = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Inte
activemq安全设置—设置admin的用户名和密码
bijian1013
java activemq
ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到
<bean id="adminSecurityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<p
【Java范型一】Java范型详解之范型集合和自定义范型类
bit1129
java
本文详细介绍Java的范型,写一篇关于范型的博客原因有两个,前几天要写个范型方法(返回值根据传入的类型而定),竟然想了半天,最后还是从网上找了个范型方法的写法;再者,前一段时间在看Gson, Gson这个JSON包的精华就在于对范型的优雅简单的处理,看它的源代码就比较迷糊,只其然不知其所以然。所以,还是花点时间系统的整理总结下范型吧。
范型内容
范型集合类
范型类
【HBase十二】HFile存储的是一个列族的数据
bit1129
hbase
在HBase中,每个HFile存储的是一个表中一个列族的数据,也就是说,当一个表中有多个列簇时,针对每个列簇插入数据,最后产生的数据是多个HFile,每个对应一个列族,通过如下操作验证
1. 建立一个有两个列族的表
create 'members','colfam1','colfam2'
2. 在members表中的colfam1中插入50*5
Nginx 官方一个配置实例
ronin47
nginx 配置实例
user www www;
worker_processes 5;
error_log logs/error.log;
pid logs/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096;}
http {
include conf/mim
java-15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环
bylijinnan
java
//use recursion
public static void mirrorHelp1(Node node){
if(node==null)return;
swapChild(node);
mirrorHelp1(node.getLeft());
mirrorHelp1(node.getRight());
}
//use no recursion bu
返回null还是empty
bylijinnan
java apache spring 编程
第一个问题,函数是应当返回null还是长度为0的数组(或集合)?
第二个问题,函数输入参数不当时,是异常还是返回null?
先看第一个问题
有两个约定我觉得应当遵守:
1.返回零长度的数组或集合而不是null(详见《Effective Java》)
理由就是,如果返回empty,就可以少了很多not-null判断:
List<Person> list
[科技与项目]工作流厂商的战略机遇期
comsci
工作流
在新的战略平衡形成之前,这里有一个短暂的战略机遇期,只有大概最短6年,最长14年的时间,这段时间就好像我们森林里面的小动物,在秋天中,必须抓紧一切时间存储坚果一样,否则无法熬过漫长的冬季。。。。
在微软,甲骨文,谷歌,IBM,SONY
过度设计-举例
cuityang
过度设计
过度设计,需要更多设计时间和测试成本,如无必要,还是尽量简洁一些好。
未来的事情,比如 访问量,比如数据库的容量,比如是否需要改成分布式 都是无法预料的
再举一个例子,对闰年的判断逻辑:
1、 if($Year%4==0) return True; else return Fasle;
2、if ( ($Year%4==0 &am
java进阶,《Java性能优化权威指南》试读
darkblue086
java性能优化
记得当年随意读了微软出版社的.NET 2.0应用程序调试,才发现调试器如此强大,应用程序开发调试其实真的简单了很多,不仅仅是因为里面介绍了很多调试器工具的使用,更是因为里面寻找问题并重现问题的思想让我震撼,时隔多年,Java已经如日中天,成为许多大型企业应用的首选,而今天,这本《Java性能优化权威指南》让我再次找到了这种感觉,从不经意的开发过程让我刮目相看,原来性能调优不是简单地看看热点在哪里,
网络学习笔记初识OSI七层模型与TCP协议
dcj3sjt126com
学习笔记
协议:在计算机网络中通信各方面所达成的、共同遵守和执行的一系列约定 计算机网络的体系结构:计算机网络的层次结构和各层协议的集合。 两类服务: 面向连接的服务通信双方在通信之前先建立某种状态,并在通信过程中维持这种状态的变化,同时为服务对象预先分配一定的资源。这种服务叫做面向连接的服务。 面向无连接的服务通信双方在通信前后不建立和维持状态,不为服务对象
mac中用命令行运行mysql
dcj3sjt126com
mysql linux mac
参考这篇博客:http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html 感觉workbench不好用(有点先入为主了)。
1,安装mysql
在mysql的官方网站下载 mysql 5.5.23 http://www.mysql.com/downloads/mysql/,根据我的机器的配置情况选择了64
MongDB查询(1)——基本查询[五]
eksliang
mongodb mongodb 查询 mongodb find
MongDB查询
转载请出自出处:http://eksliang.iteye.com/blog/2174452 一、find简介
MongoDB中使用find来进行查询。
API:如下
function ( query , fields , limit , skip, batchSize, options ){.....}
参数含义:
query:查询参数
fie
base64,加密解密 经融加密,对接
y806839048
经融加密 对接
String data0 = new String(Base64.encode(bo.getPaymentResult().getBytes(("GBK"))));
String data1 = new String(Base64.decode(data0.toCharArray()),"GBK");
// 注意编码格式,注意用于加密,解密的要是同
JavaWeb之JSP概述
ihuning
javaweb
什么是JSP?为什么使用JSP?
JSP表示Java Server Page,即嵌有Java代码的HTML页面。使用JSP是因为在HTML中嵌入Java代码比在Java代码中拼接字符串更容易、更方便和更高效。
JSP起源
在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。
如果使用Servl
apple watch 指南
啸笑天
apple
1. 文档
WatchKit Programming Guide(中译在线版 By @CocoaChina) 译文 译者 原文 概览 - 开始为 Apple Watch 进行开发 @星夜暮晨 Overview - Developing for Apple Watch 概览 - 配置 Xcode 项目 - Overview - Configuring Yo
java经典的基础题目
macroli
java 编程
1.列举出 10个JAVA语言的优势 a:免费,开源,跨平台(平台独立性),简单易用,功能完善,面向对象,健壮性,多线程,结构中立,企业应用的成熟平台, 无线应用 2.列举出JAVA中10个面向对象编程的术语 a:包,类,接口,对象,属性,方法,构造器,继承,封装,多态,抽象,范型 3.列举出JAVA中6个比较常用的包 Java.lang;java.util;java.io;java.sql;ja
你所不知道神奇的js replace正则表达式
qiaolevip
每天进步一点点 学习永无止境 纵观千象 regex
var v = 'C9CFBAA3CAD0';
console.log(v);
var arr = v.split('');
for (var i = 0; i < arr.length; i ++) {
if (i % 2 == 0) arr[i] = '%' + arr[i];
}
console.log(arr.join(''));
console.log(v.r
[一起学Hive]之十五-分析Hive表和分区的统计信息(Statistics)
superlxw1234
hive hive分析表 hive统计信息 hive Statistics
关键字:Hive统计信息、分析Hive表、Hive Statistics
类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中。
表和分区的统计信息主要包括:行数、文件数、原始数据大小、所占存储大小、最后一次操作时间等;
14.1 新表的统计信息
对于一个新创建
Spring Boot 1.2.5 发布
wiselyman
spring boot
Spring Boot 1.2.5已在7月2日发布,现在可以从spring的maven库和maven中心库下载。
这个版本是一个维护的发布版,主要是一些修复以及将Spring的依赖提升至4.1.7(包含重要的安全修复)。
官方建议所有的Spring Boot用户升级这个版本。
项目首页 | 源