🍿*★,°*:.☆( ̄▽ ̄)/$:*.°★* 🍿
🍟欢迎来到静渊隐者的csdn博文,本文是c++游戏制作指南的一部🍟
🍕更多文章请点击下方链接🍕
🍜专栏介绍:在这一专栏中,我将循循善诱,带领你,在冷峻的控制台上,种满缤纷,一同走入c++控制台游戏的殿堂。
🥨适宜人群:学习C++语言三个月及以上的爱好者,熟记基础语法(选择、循环两大结构),掌握基础算法(高精度、排序、模拟、贪心、搜索、动规等),知晓基础数据结构(数组、字符串、链表、栈、队列、树、图)。
🌭学习目的:能够自主编写出有趣的c++控制台游戏,并掌握自学的方法。
🥞喜欢的朋友可以关注一下,下次更新不迷路
🥙前言
在一片静谧的森林中,淡金色的阳光透过树叶的缝隙,洒在柔软的青苔上,仿佛把时间的流动都放缓了。在这里,一切都显得那么和谐,那么美好。森林的每一片树叶,每一株草,甚至每一丝风,都充满了生命的气息,这种气息是如此清新,如此宁静,仿佛是大自然的呼吸,使得人们愿意停下脚步,侧耳倾听。
cpp
#include <iostream>
using namespace std;
#define N 100010
#define INF 1e9
#define ls(x) tr[x].s[0]
#define rs(x) tr[x].s[1]
int n, m;
struct node{
int s[2]; //左右儿子
int p; //父亲
int v; //节点权值
int cnt; //权值出现次数
int siz; //子树大小
void init(int p1,int v1){
p=p1, v=v1;
cnt=siz=1;
}
}tr[N];
int root; //根节点编号
int idx; //节点个数
void pushup(int x){
tr[x].siz=tr[ls(x)].siz+tr[rs(x)].siz+tr[x].cnt;
}
void rotate(int x){
int y=tr[x].p, z=tr[y].p;
int k = tr[y].s[1]==x;
tr[z].s[tr[z].s[1]==y] =x;
tr[x].p = z;
tr[y].s[k] = tr[x].s[k^1];
tr[tr[x].s[k^1]].p = y;
tr[x].s[k^1] = y;
tr[y].p = x;
pushup(y), pushup(x);
}
void splay(int x, int k){
while(tr[x].p!=k){
int y=tr[x].p, z=tr[y].p;
if(z!=k) // 折转底,直转中
(ls(y)==x)^(ls(z)==y)
? rotate(x) : rotate(y);
rotate(x);
}
if(k==0) root = x;
}
void insert(int v){ //插入
int x=root, p=0;
while(x && tr[x].v!=v)
p=x, x=tr[x].s[v>tr[x].v];
if(x) tr[x].cnt++;
else{
x=++idx;
tr[p].s[v>tr[p].v]=x;
tr[x].init(p,v);
}
splay(x, 0);
}
void find(int v){ //找到v并转到根
int x=root;
while(tr[x].s[v>tr[x].v]&&v!=tr[x].v)
x=tr[x].s[v>tr[x].v];
splay(x, 0);
}
int getpre(int v){ //前驱
find(v);
int x=root;
if(tr[x].v<v) return x;
x=ls(x);
while(rs(x))x=rs(x);
return x;
}
int getnxt(int v){ //后继
find(v);
int x=root;
if(tr[x].v>v) return x;
x=rs(x);
while(ls(x))x=ls(x);
return x;
}
void del(int v){ //删除
int pre=getpre(v);
int suc=getnxt(v);
splay(pre,0), splay(suc,pre);
int del=tr[suc].s[0];
if(tr[del].cnt>1)
tr[del].cnt--, splay(del,0);
else
tr[suc].s[0]=0,splay(suc,0);
}
int getrank(int v){ //排名
find(v);
return tr[tr[root].s[0]].siz;
}
int getval(int k){ //数值
int x=root;
while(1){
int y=ls(x);
if(tr[y].siz+tr[x].cnt<k)
k -= tr[y].siz+tr[x].cnt,
x = rs(x);
else if(tr[y].siz>=k) x=y;
else break;
}
splay(x, 0);
return tr[x].v;
}
int main(){
insert(-INF);insert(INF); //哨兵
scanf("%d", &n);
while(n--){
int op,x;
scanf("%d%d", &op, &x);
if(op==1) insert(x);
if(op==2) del(x);
if(op==3) printf("%d\n",getrank(x));
if(op==4) printf("%d\n",getval(x+1));
if(op==5) printf("%d\n",tr[getpre(x)].v);
if(op==6) printf("%d\n",tr[getnxt(x)].v);
}
return 0;
}
🥪一、XXX
在这片神秘的森林中,有一条清澈的小溪穿过,溪水淙淙,如歌如诗,它从山脚下流过,石头上溅起的水花,像是在讲述着每一个美丽的故事。小溪的两旁,野花繁茂,五彩斑斓,它们在微风中轻轻摇曳,花香四溢,与溪水的歌声交织在一起,构成了一首动人的乐章。
🍰二、XXX
向远处望去,森林的尽头是一座静默的山峰,它矗立在那儿,默默地守护着这片美丽的土地。山峰之上的云雾缭绕,如同仙气缭绕,给人一种宁静而神秘的感觉。山脚下,一片湖泊安静地卧着,湖水如镜,倒映着山峰的雄伟和天空的蔚蓝,一切都显得那么和谐,那么宁静。
🌮三、XXX
在这片大自然的画卷中,人们仿佛能找到内心的宁静和身心的放松。在这里,我们可以忘记城市的喧嚣和繁忙,感受到大自然的美丽和宁静。这是一片没有杂质,没有纷扰,只有自然和和谐的土地。在这样的环境中,我们仿佛能找到自我,找到那份来自内心的平静和宁静。
🍔四、XXX
在森林的深处,还有一片神秘的花园,那里盛开着各种奇特的花朵。花朵们竞相开放,色彩斑斓,形态各异,散发出馥郁的芳香,令人陶醉。花园的中心是一棵古老的树,它的枝叶繁茂,遮天蔽日,给人一种威严而又神秘的感觉。
在这片神秘的花园中,有许多小动物们穿梭其间,它们时而欢快地奔跑,时而悠闲地漫步,它们的存在给这片森林增添了更多的生机与活力。
太阳渐渐落下,天空被染上了一片金黄色,美丽的晚霞把整个森林映照得如梦如幻。此时,森林里的每一处都散发着温暖的光芒,仿佛是大自然的画卷,美得令人窒息。
夜幕降临,星星在天空中闪烁,一轮明亮的月亮高悬天际,照亮了整个森林。夜晚的森林变得更加神秘而美丽,一切都显得那么静谧,那么祥和。
这片美丽的森林,是一个充满生机和和谐的地方,它让人们忘却烦恼,感受到大自然的美丽和力量。在这里,我们可以感受到生命的脉动,可以听到大地的的心跳,可以闻到空气中弥漫的幸福和喜悦。
这是一个值得我们珍惜和保护的地方,是一个能让我们心灵得到净化和慰藉的净土。让我们用心去感受这片美丽的森林,去感受大自然的美丽和神秘,去寻找那份来自内心的平静和宁静。
🍣五、结语
在森林的更深处,有一条蜿蜒的小路,它穿越密密的树林,通向了未知的远方。小路两旁长满了各种花草,它们在微风中轻轻摇曳,发出淡淡的芳香。沿着这条小路向前走,仿佛进入了一个神秘的世界,每一个转角都有可能遇见未知的惊喜。
在小路的尽头,是一片静谧的湖面。湖面宛如一面镜子,倒映着周围的树木和天空,形成了一幅美丽的画卷。湖水清澈见底,鱼儿在水中自由自在地游弋,偶尔跃出水面,溅起一串串水花。湖边长满了柳树,它们在微风中轻轻拂动着,仿佛在向游客们讲述着这片森林的故事。
湖的另一侧是一座小山,山上长满了各种各样的树木和花草。登上山顶,可以俯瞰整个森林,远处的景色如诗如画,令人陶醉。在山顶上还有一个古老的寺庙宇,它静静地矗立在那里,散发着神秘的气息。进入庙宇,可以看到许多古老的佛像和神秘的符咒,感受到一种神秘而庄严的氛围。
回到森林中,夜幕已经降临。星空如同撒满了钻石的黑色幕布,闪烁着耀眼的光芒。月亮高悬天际,洒下柔和的月光,照亮了整个森林。此时,森林里的每一处都变得神秘而美丽,仿佛是一个仙境。在这片神秘的森林中,人们仿佛可以感受到自然的神秘力量,可以听到大地的的心跳,可以闻到空气中弥漫的幸福和喜悦。
这片美丽的森林是大自然的杰作,是自然的恩赐。它让人们忘却烦恼,感受到大自然的美丽和力量。在这里,我们可以感受到生命的脉动,可以听到大地的的心跳,可以闻到空气中弥漫的幸福和喜悦。这是一个值得我们珍惜和保护的地方,是一个能让我们心灵得到净化和慰藉的净土。
我们应该珍惜这片森林,保护它的自然环境,不让任何形式的破坏和污染破坏它的美丽和宁静。我们要用行动去爱护它,去照顾它,去保护它,让它的美丽和神秘得以延续。
在这片神秘的森林中,我们不仅可以感受到大自然的的美和神秘,还可以从中汲取到力量和勇气。当我们遇到困难和挫折时,我们可以从森林中汲取到坚持和奋斗的力量;当我们感到疲惫和迷茫时,我们可以从森林中感受到宁静和安详的力量。这片森林是我们的精神家园,是我们的力量源泉。
让我们用心去感受这片美丽的森林,去感受大自然的美丽和神秘,去寻找那份来自内心的平静和宁静。让我们用行动去爱护它,去照顾它,去保护它,让它的美丽和神秘得以延续。因为这片森林不仅是大自然的杰作,更是我们心灵的净土,是我们生命中的宝贵财富。