竞赛
考级
码上开聊合集
AC君
C++结构体:组织数据的利器 在C++ 编程中,结构体(struct)是一种非常重要的数据类型,它允许我们把不同类型的数据组合在一起,形成一个逻辑上的整体,从而方便我们对数据进行管理和操作。结构体在数据存储、函数参数传递以及面向对象编程中都有着广泛的应用。本文将详细介绍C++结构体的定义、使用方法以及一些高级特性,并通过代码实例帮助大家更好地理解和掌握。 一、结构体的定义 结构体的定义使用struct关键字,后面跟着结构体的名称和花括号括起来的成员列表。成员列表中可以包含不同类型的数据,如整型、浮点型、字符型、数组、指针等。结构体的定义语法如下: 例如,我们可以定义一个表示二维点的结构体: 在这个例子中,Point是一个结构体名称,它有两个成员变量:x和y,它们都是double类型,分别表示点的x坐标和y坐标。 二、结构体的初始化 C++提供了多种方式来初始化结构体的成员变量。 * (一)直接赋值初始化 在定义结构体变量后,可以使用点操作符(.)直接对成员变量进行赋值。例如: 这种方式比较直观,但需要逐个成员变量进行赋值,比较繁琐。 * (二)构造函数初始化(C++11及以上) 从C++11开始,结构体可以像类一样定义构造函数,从而实现更方便的初始化。例如: 使用构造函数初始化结构体变量时,可以直接传入参数: 这种方式不仅代码简洁,而且可以避免未初始化的成员变量。 * (三)列表初始化(C++11及以上) C++11还引入了列表初始化(也称为统一初始化)的方式,可以直接在定义结构体变量时使用大括号初始化成员变量。例如: 这种方式与构造函数初始化的效果类似,但不需要显式定义构造函数。 三、结构体的使用 结构体的主要用途是将相关的数据组织在一起,方便我们对它们进行操作。以下是一些常见的使用场景。 * (一)作为函数参数 结构体可以作为函数的参数,将多个相关数据一起传递给函数。例如,我们可以定义一个函数来计算两点之间的距离: 在这个例子中,distance函数接受两个Point类型的参数,通过点操作符访问它们的成员变量来计算距离。 * (二)作为函数返回值 结构体也可以作为函数的返回值,将多个相关结果封装在一起返回。例如,我们可以定义一个函数来计算矩形的中心点和面积: 在这个例子中,calculateRectangle函数返回一个Result类型的结构体,包含了矩形的中心点和面积两个结果。 四、结构体的高级特性 * (一)结构体的默认成员函数 C++为结构体提供了一些默认的成员函数,包括默认构造函数、拷贝构造函数、赋值运算符、析构函数等。这些默认函数的行为与类类似,但默认情况下结构体的成员是公有的(public),而类的成员是私有的(private)。 * (二)结构体的继承 虽然结构体和类在语法上有些区别,但它们在C++中本质上是相同的,都可以支持继承。结构体可以继承另一个结构体或类,也可以被类继承。例如: 在这个例子中,Circle结构体继承了Shape结构体,并实现了它的纯虚函数draw。 * (三)结构体的匿名使用 在某些情况下,我们可以定义匿名结构体,即没有名字的结构体。匿名结构体通常用于临时存储一些简单的数据。例如: 匿名结构体不能定义多个变量,只能在定义时直接初始化。 五、结构体与类的区别 虽然结构体和类在C++中非常相似,但它们有一些细微的区别: 默认访问权限:结构体的成员默认是公有的(public),而类的成员默认是私有的(private)。 语义区别:在设计上,结构体通常用于表示简单的数据集合,而类更倾向于表示具有复杂行为的对象。 六、总结 结构体是C++中一种非常强大的数据组织工具,它可以帮助我们更好地管理复杂的数据结构。通过合理地定义和使用结构体,可以使代码更加清晰、易读和易于维护。在实际开发中,结构体既可以独立使用,也可以与其他语言特性(如类、模板等)结合,发挥更大的作用。掌握结构体的定义、初始化和使用方法是每个C程序员的基本功,希望本文的介绍和代码实例能够帮助大家更好地理解和应用结构体。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 以上就是对C++结构体的详细介绍,希望对大家有所帮助。蒟蒻/犇犇们加油!!向C+ 大神一起进步吧~~~
@llx
时隔多日我们再次相见!今天我们就来唠一唠DFS! 一句话记住 DFS: 像走迷宫,选一条路一直走到头,撞墙了就回头,换条新路继续走! 1. 生活例子 你在学校图书馆找《某某》。 DFS 做法: * 从进门左手第一排书架开始,一本一本往右找; * 走到尽头,发现没有,退后一格,再进下一排; * 直到找到书或逛完整馆。 虽说你心里知道永远也找不到的 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 2. 算法模板(C++,不到 20 行) 题目:数房间 > 给一个 n×m 的地图,# 是墙,. 是空地,问有多少个独立房间(上下左右连通)。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 3.为什么要用 DFS? 典型应用 一句话解释 难度 图/树的遍历 打印、统计、收集信息 ★☆☆ 连通块/连通分量 求岛屿数量、朋友圈 ★★☆ 路径问题 迷宫寻路、单词接龙 ★★☆ 拓扑排序 有向无环图(DAG)线性化 ★★★ 回溯/剪枝 N 皇后、数独、全排列 ★★★ 二分图判定 染色法 ★★☆ 一句话总结:“只要问题能抽象成‘在一张图里找东西’,DFS 大概率用得上。” ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 4. 小练习 把上面代码粘到 洛谷p1596 交一交,看是不是 AC? 提示: 条件,DFS判断,八联通还是四联通~ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 5.通用模板(图的DFS) 以下代码实现了 “从任意起点出发遍历整张图” 的通用 DFS,可直接复制粘贴。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 6.易踩的坑 & 注意事项 维度 复杂度 & 说明 注意事项(坑点) 时间复杂度 O(V + E)<br>每个顶点、每条边最多访问一次 网格图为 O(n·m),树形图为 O(n) 空间复杂度 O(V)<br>递归栈或显式栈 + visited 数组 网格 1e3×1e3 时递归深度 1e6 可能爆栈;改用 BFS 或手写栈 重复访问 — 必须设 visited 标记;无向图/双向边尤其注意死循环 回溯还原 — 枚举所有方案时需撤销标记(vis[x]=false) 剪枝 — 找到答案立即返回;无效状态提前跳过 输入规模 — n、m > 1e3 时 DFS 常数大,易 TLE;考虑 BFS 或 IDA* 方向/建图 — 无向图要加两条有向边;别把方向搞反 递归深度限制 — Linux 默认栈 8 MB≈1e5 层;可用 -Wl,--stack=268435456 放大或改迭代 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 再会!!
接下来让我们领略下文章的魅力!!! WA去了,有再来的时候;RE枯了,有再青的时候;TLE谢了,有再开的时候。但是,聪明的,你告诉我,我们的AC为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢:现在又到了哪里呢? 我不知道题目给了我多少限制;但我的AC确乎是渐渐空虚了。在默默里算着,一千多次的提交已经从我手中溜去;像针尖上一滴水滴在大海里,我的AC滴在OJ的流里,没有声音,也没有影子。我不禁头涔涔而泪潸潸了。 AC尽管去了,WA尽管来着;ACM与OI的中间,又怎样地匆匆呢?早上我起来的时候,小屋里射进两三方斜斜的太阳。AC他有脚啊,轻轻悄悄地挪移了;我也茫茫然跟着旋转。于是——洗手的时候,AC从水盆里过去;吃饭的时候,AC从饭碗里过去;默默时,便从凝然的双眼前过去。我觉察他去的匆匆了,伸出手遮挽时,他又从遮挽着的手边过去,天黑时,我躺在床上,他便伶伶俐俐地从我身上跨过,从我脚边飞去了。等我睁开眼和太阳再见,这算又溜走了一个AC。我掩着面叹息。但是新来的AC的影儿又开始在叹息里闪过了。 在逃去如飞的AC里,在千门万户的WA里的我能做些什么呢?只有JU罢了,只有PE罢了;在八千多次的PE里,除WA外,又剩些什么呢?过去的日子如CA,被微风吹散了,如SE,被初阳蒸融了;我留着些什么痕迹呢?我何曾留着像WA样的痕迹呢?我赤裸裸来到这世界,转眼间也将赤裸裸的回去罢?但不能平的,为什么偏要白白走这一遭啊? 你聪明的,告诉我,我们的AC为什么一去不复返呢? 但是 WA去了,有AC的时候;TLE枯了,有优化的时候;RE谢了,有Debug的时候。但是,聪明的队友,你告诉我,我的AK机会为什么一去不复返呢?——是出题人卡了常罢:那是哪组数据?又藏在何处呢?是我想假了算法罢:现在又该怎么补救呢? 我不知道比赛给了我多少时间;但我的罚时确乎是渐渐增加了。在紧张里算着,三个小时已经从我屏幕前溜去;像评测队列里的一个提交混在千万提交中,我的代码排在OJ的队列里,没有反应,也没有回馈。我不禁手抖抖而汗涔涔了。 AC的尽管AC了,WA的尽管WA着;AC与WA的交界,又怎样地模糊呢?当我打开题目的时候,编辑器里闪烁着两三行初始代码。键盘它有手啊,噼噼啪啪地敲打着;我也急急慌慌跟着思考。于是——读题的时候,时间从题意里过去;敲代码的时候,时间从指缝里过去;调试时,便从闪烁的光标前过去。我觉察他去的太快了,按下提交时,他又从编译的时间里过去,当CE时,我对着屏幕,他便明明白白地从我错误里跨过,从我眼前溜走了。等我改完错和样例再见,这算又浪费了十分钟。我拍着桌子懊恼。但是新的难题的影子又开始在下一个题面里闪现了。 在稍纵即逝的比赛里,在百转千回的算法中的我能做些什么呢?只有暴力罢了,只有打表罢了;在五小时的比赛里,除对拍外,又剩些什么呢?Debug的代码如注释,被一键删除了,如伪解,被hack数据推翻了;我留着些什么记录呢?我何曾留着像标程那样优美的代码呢?我信心满满打开题目,转眼间也将垂头丧气地离场罢?但不能服的,为什么偏要白白WA这一回啊? 你厉害的队友,告诉我,我的AK机会为什么一去不复返呢? 接下来是小游戏! 鼠标点一下 鼠标点一下 鼠标点一下 轰!碎了! 祝大家做题时,不会 刚刚有个傻冒告诉我鲁迅姓周,真逗啊!周迅是个演员好吗?笑死我了!真想一板砖呼死他! 我记得鲁迅原名李大钊,浙江周树人,是著名的法西斯音乐家,一生有2000多项发明,被称为太空步的创始人。 他拥有一个好嗓子,小学时就凭借着90分钟跑100米的优异成绩考上了新东方烹饪学校! 毕业后成功进入富士康苦心练习勃鸡,他擅长110米栏,左手反打技术高超,拿手全垒打,大灌篮, “后空翻180度右旋体360度后蹬地翻转720度”是他的经典动作,更难得可贵的是他落地没有水花。 他还是恶魔果实能力者,传说中的三忍之一,曾大闹天宫,后改邪归正,统一三国,传说他有107个弟兄, 个个铜头铁臂,面目狰狞,这便是羊村的起源,他生平淡泊名利,曾经锻造五色神石补天,因杀死西门庆等原因,上梁山当了土匪, 后遇到高人阿凡达的指点,收买阿童木**了白雪公主,与七个小矮人快乐的生活在一起。并写了名侦探柯南的故事。 名侦探柯南讲述的是要成为海贼王的八神太一收服了皮卡丘并登上创界山启动光能使者打败了鲨鱼辣椒, 然后跟多啦A梦一起通过黄金十二宫收集 七个葫芦娃召唤神龙复活二代火影,但最终为了保卫M78星云而成为了羊村村长, 同蓝精灵们一起抵抗光头强的入侵的故事。他还写了《时间简史》,后来因抽了龙王三太子的筋,以命偿命。后被太乙真人救活,又送了他不少法宝。 然后又创建了‘浴谷’,‘浴谷’是一个收集AC获得AK的网站。当时正值小黄人入侵时期, 于是,他批量生产大白,成功抵御入侵,再一次拯救了人类!当他晚年时,热衷于炼丹,炼时经常失败,一大堆毒丹, 这些毒丹在kkk的帮助成为毒瘤,在IMO经常被用来增加物理实验的难度,比如高锰酸钾与古洛糖酸内酯羟化酶发生反应,生成了奥黛丽赫苯, 并在其帮助下结实了NBA著名运动员兼全球Rap协会会长菜虚鲲,和他成为了好鸡友,并常常和他一起唱唱跳跳。 尽管鲁迅已经步入晚年,但他和菜虚鲲打篮球的时候依然会喊出“鸡你太美”, 并立下flag:要是kkk能17张牌秒了她,她!当!场!就把珂学13题AK了。 听说津津为课程烦恼 金明一家住进了新房 听说丁丁玩数字游戏 火柴棒能搭出新天地 听说校门外正在砍树 大家一起做靶形数独 听说旅行者在赚差价 潜伏者正在破译着密码 只有无尽的代码知道 津津摆脱了学习的烦恼 金明开心地走进商店 挑选着书桌和电脑 总有一种算法能够让你成功拿到分 无论是贪心还是动规 或者将答案二分 思如泉涌掀起波涛 又汇成一个新的算法 让所有TLE 所有MLE 激励着我们前行写代码 听说同学们在玩推理 小Z的袜子总配不齐 听说两人在挑选客栈 火星上有条能量项链 听说陶陶在采摘苹果 一只青蛙要从河边过 听说推销员走入胡同 杰瑞爬进了奶酪的小洞 只有无尽的代码知道 同学们男女配对练起了舞蹈 屏幕在深夜微微发亮 思想在那虚树路径上彷徨 平面的向量交错生长 织成 忧伤的网 剪枝剪去我们的疯狂 SPFA 告诉我前途在何方 01 背包装下了忧伤 笑颜 洋溢脸庞 键盘微凉 鼠标微凉 指尖流淌 代码千行 凸包周长 直径多长 一进考场 全都忘光 你在 OJ 上提交了千百遍 却依然不能卡进那时限 双手敲尽代码也敲尽岁月 只有我一人 写的题解 凋零在 OJ 里面 Tarjan 陪伴强连通分量 生成树完成后思路才闪光 欧拉跑过的七桥古塘 让你心驰神往 队列进出图上的方向 线段树区间修改求出总量 可持久化留下的迹象 我们伏身欣赏 数论算法 图论算法 高斯费马 树上开花 线性规划 动态规划 时间爆炸 如何优化 我在 OI 中辗转了千百天 却不让我看 AK 最后一眼 我用空间换回超限的时间 随重新编译 测完样例 才发现漏洞满篇 原来 CE 是因选错语言 其实爆零 只因忘写文件 如果标算太难请坚定信念 不如回头再看一眼题面 以那暴力模拟向正解吊唁 蒟蒻的蜕变 神犇的出现 终将与 AU 擦肩 屏幕在深夜微微发亮 我心在考场 CE Compile Easily 轻松通过编译 RE Run Excellently 完美地运行 TLE Time Limit Enough 时间充裕 MLE Memory Limit Enough 内存充裕 OLE Output Limit Enough 输出充裕 UKE United Kingdom Error 英国错误 WA Wonderful Answer 好答案 AC Answer Coarse 粗劣的答案 “我来A题只做三件事!开机!扫雷!睡觉!(跪)” “我来CSP-J2只做三件事!爆零!爆零!还是爆零!(跪)” “我来NOIP只做三件事!骗分!打表!省一!(跪)” 外人面前高冷女王, 亲戚面前白兔奶糖, 朋友面前精神失常, 闺蜜面前秒变流氓。 TLE去了,还有再来的时候;RE枯了,还有再青的时候;CE谢了,还有再开的时候。可是,聪明的,你告诉我,我们的AC为什么一去不复返呢?是有人偷了他们吧,那又是谁?是他们自己逃走了吧:那现在又藏在哪里呢? 我不知道他们给我了多少次AC,可是我的手却渐渐空虚了,一千多次提交已经从我手中过去,像针尖里的一滴水滴在大海里一样,我的AC滴在OJ的流里,没有声音也没有影子。我不禁头涔涔而泪潸潸了。 WA的尽管来了,AC的却又去了,提交的时候又是怎样的匆匆呢?我刚点击提交时PD(pending)出现在屏幕上,PD他有脚啊,带着JU(judging)与CO(compiling) 轻轻悄悄的挪移了。于是,打开网页时,AC从鼠标里过去;加载时,AC从积木块(加载页面)里过去;打代码时,AC从键盘中过去;我察觉到他去得匆匆了,便伸出鼠标来遮挽,他便伶伶俐俐的从我鼠标边飞走了;我按下提交时,新的AC又从后台跳过;第二次提交时,我掩面叹息,但新来的AC又从叹息中逃走了。 人死为鬼,鬼死为虚,虚死为輗,輗死为虚,虚生道,道生一,一生二,二生三,三生万物,万物生太极,太极生两姨,两姨生四舅,四舅生八仔,八仔要喝奶,喝了这瓶奶,忘了这个仔,旺仔牛奶。王中王,火腿肠,一节更比一节强。 白鹭是一道精美的菜。酱料的配合,锅盖的大小,一切都很适宜。白鹤太大而嫌肉硬,即使如粉红的朱鹭或灰色的苍鹭,也觉得腻了一些,而且太难吃到了。而白鹭却因为它的常见,而被人忘却了它的美味。那雪白的瘦肉,那全身的五花肉结构,那适合磨牙的长喙,那嘎嘣脆的脚,增之一分则嫌腻,减之一分则嫌瘦,素之一分则嫌淡,黛之一分则嫌脏。在清蒸锅里,时有一只两只白鹭趴着被蒸熟,整个的锅变成了一副嵌在灶台上的画。锅的大小好像是有心人为吃蒸白鹭设计的 (五上课文-白鹭) 子曰:打架用砖呼,不亦乱乎!照头乎!乎不死再乎! 佛说:胡扯!我佛慈悲!不亦多乎!一砖乎死! 1+1=3的过程是: 已知aa-bb=(a+b)(a-b);所以aa-bb/a-b=a+b。 假设当a=1,b=1,所以11-11/1-1=1+1。 又因为当“分子等于分母时,此分数等于1”。 所以,“11-11/1-1=1+1”。 化简,即1=2,则1+1=3。
HcodeOJ
绝对真实 喜欢的点个赞吧,求求了
编程之神
NP完全征服者积分榜:\COLOR{BLACK}{NP完全征服者积分榜:}NP完全征服者积分榜: 团队↩︎ 职位系列\COLOR{BLACK}{职位系列}职位系列 职位 所需分数 返分规则 竞赛管理员竞赛管理员竞赛管理员 600600600 举办一次竞赛返30举办一次竞赛返30举办一次竞赛返30 文件管理员文件管理员文件管理员 400400400 上传一次题解返10上传一次题解返10上传一次题解返10 作业管理员作业管理员作业管理员 600600600 布置一次作业返30布置一次作业返30布置一次作业返30 题库管理员题库管理员题库管理员 600600600 每出一道题目返30每出一道题目返30每出一道题目返30 题单管理员题单管理员题单管理员 300300300 整理一个题单返15整理一个题单返15整理一个题单返15 管理员管理员管理员 2000 1500(限时)1500(限时)1500(限时) 返分规则与小项管理相同返分规则与小项管理相同返分规则与小项管理相同 温馨提示:\COLOR{BLACK}{温馨提示:}温馨提示: &其余职位暂未开放& &每项返分不会超过兑换分的2倍& 团队↩︎ 权利系列\COLOR{BLACK}{权利系列}权利系列 权利 所需分数 竞赛管理员1天竞赛管理员1天竞赛管理员1天 707070 文件管理员1天文件管理员1天文件管理员1天 505050 作业管理员1天作业管理员1天作业管理员1天 606060 题库管理员1天题库管理员1天题库管理员1天 606060 题单管理员1天题单管理员1天题单管理员1天 606060 管理员1天管理员1天管理员1天 115 100(限时)100(限时)100(限时) 团队↩︎ 加分规则\COLOR{BLACK}{加分规则}加分规则 事件 分数 题库中做对一题题库中做对一题题库中做对一题 333 题单中做对一题题单中做对一题题单中做对一题 333 作业中做对一题作业中做对一题作业中做对一题 333 积分赛排名第一积分赛排名第一积分赛排名第一 131313 积分赛排名第二积分赛排名第二积分赛排名第二 888 积分赛排名第三积分赛排名第三积分赛排名第三 555 邀请一名成员(被邀请人需要标明邀请者)邀请一名成员(被邀请人需要标明邀请者)邀请一名成员(被邀请人需要标明邀请者) 151515 荣誉称号升级荣誉称号升级荣誉称号升级 202020 加入必加的合作和附属团队(全部)加入必加的合作和附属团队(全部)加入必加的合作和附属团队(全部) 101010 . . . . . . . 尽请期待 温馨提示:\COLOR{BLACK}{温馨提示:}温馨提示: &其他活动加分见团队主页实时通知& &注意:欢乐赛加分×2,挑战赛×3,巅峰赛×4& &注意:管理赛积分×3÷2& &可与NP完全征服者【加分规则↩︎】加分叠加& > 积分榜排行: 昵称 积分 可使用积分 dream_陆军展览(不加团队) ∞ ∞ 🐱🚀 ∞ ∞ 忘川秋库 ∞ ∞ 复仇者_帅童 60 60 杨曙宁 40 40 复仇者_元神启动 40 40 复仇者_轻羽掠影 40 40 忘川秋库 40 40 谁来教我C++ 10 10 苦力怕 10 10 wzc 10 10 > 额外注意: 禁止使用权力进行包括但不限于以下行为: 1.移除成员,如有发现立刻收回职权并上报AC君 2.删除竞赛,作业,题库,公告等,如有发现收回职权并立刻上报AC君 3.已有因为踢人,更改团队设置等行为而被官方禁言或封号的人无法兑换任何权利 队长↩︎
༺ཌༀ™☯追光·少年☯™ༀད༻
前言 vs studio和vs code的区别:Visual Studio(VS) 是功能强大的 集成开发环境(IDE) ,适合大型企业级开发;Visual Studio Code(VS Code) 是轻量级 代码编辑器,依赖插件扩展,适合快速开发和跨平台使用。 我个人推荐:功能跟强大的vs studio 想学vs code的去这里 @yh26zhuenaf 正文 一,下载VS STUDIO 1.打开官网 2.选择免费下载 3.点击左边紫色图标中的免费下载 二,配置 下载完成后,点开下载好的文件 根据系统指示一步步下载(默认下载地址为c盘) 到选插件的界面时,可以选择自己想要的插件 最后点击安装即可 本文参考 1.https://blog.csdn.net/Java_lover_zpark/article/details/136599573 2.https://www.acgo.cn/discuss/study/38103 3.https://xbdswj.blog.csdn.net/article/details/145203561?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7EPaidSort-1-145203561-blog-136599573.235%5Ev43%5Epc_blog_bottom_relevance_base3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7EPaidSort-1-145203561-blog-136599573.235%5Ev43%5Epc_blog_bottom_relevance_base3&utm_relevant_index=1 如有疑问,在评论区@我 喜欢的就点个赞吧
DAY1 前缀和 模板 一维 二维
森林湖集中营正版蔡锡龙
https://www.acgo.cn/person/4305086 这个人直接复制黏贴我这道题目的代码:https://www.acgo.cn/problemset/info/30919
yaoqichen
前言:有个文章 声明!本文和ID:4259470联动出品,搭配米饭食用更佳! 众所不周知,常见的搜索方法有广度优先搜索、深度优先搜索(俗称:深搜广搜)、二分搜索、线性搜索。 正片开始前,请准备好米饭,然后再看目录: 1. 常见搜索方法的概念: ( (1)、搜索的概念 (2)、线性搜索概念 (3)、二分搜索概念 (4)、深度搜索概念 (5)、广度搜索概念 ) 2. 深度搜索模板 3. 广度搜索模板 4. 二分搜索模板 5. 线性搜索模板 正片已开始 1. 常见搜索方法的概念 (1)、搜索的概念 * 在 C++ 编程中,搜索指的是从数据集合(如数组、链表、树、图等)中查找满足特定条件的元素或路径的过程。搜索是程序设计中最基础且常用的操作之一,其效率直接影响程序性能,因此选择合适的搜索算法至关重要! * 找到目标元素在数据集合中的位置。 * 判断目标元素是否存在于数据集合中。 * 在复杂结构(如树、图)中寻找满足条件的路径或解(如最短路径、可行解)。 (2)、线性搜索概念 * 线性搜索,是一种最简单直观的搜索算法,其核心思想是逐个检查数据集合中的元素,直到找到目标元素或遍历完所有元素。 基本原理: 线性搜索不要求数据集合具备特定的排列顺序,适用于任何类型的线性数据结构(如数组、链表等)。其过程如下: 1. 从数据集合的第一个元素开始 2. 依次将每个元素与目标值进行比较 3. 如果找到匹配的元素,返回其位置(索引) 4. 如果遍历完所有元素仍未找到匹配项,返回表示 "未找到" 的标识(通常为 - 1) (3)、二分搜索概念 * 二分搜索,是一种高效的查找算法,其核心思想是利用数据的有序性,通过反复将搜索范围减半来快速定位目标元素。 基本原理: 二分搜索仅适用于已排序的数据集合(升序或降序),其过程如下: 1. 确定搜索范围的起始和结束位置 2. 计算中间位置,并比较中间元素与目标值 3. 如果中间元素等于目标值,找到目标,返回其位置 4. 如果中间元素小于目标值,说明目标在右半部分,调整左边界 5. 如果中间元素大于目标值,说明目标在左半部分,调整右边界 6. 重复步骤 2-5,直到找到目标或搜索范围为空(未找到) (4)、深度搜索概念 * 深度搜索(DFS),又称深度优先搜索,是一种用于遍历或搜索树、图等数据结构的算法。其核心思想是尽可能深地探索一条路径,当无法继续前进时,回溯到上一个节点,选择另一条未探索的路径继续深入,直至遍历所有可达节点。 基本原理: 深度搜索的执行过程类似于 “走迷宫”:优先沿着一条路径走到尽头,遇到死胡同再退回上一个岔路口,选择新的路径继续探索。其过程如下: 1. 从起始节点开始,标记该节点为 “已访问”。 2. 选择一个未访问的相邻节点,递归或通过栈深入探索该节点。 3. 重复步骤 2,直到当前路径无法继续(所有相邻节点均已访问)。 4. 回溯到上一个节点,继续探索其他未访问的相邻节点。 5. 直至所有可达节点均被访问。 (5)、广度搜索概念 * 广度搜索(BFS),又称广度优先搜索,是一种用于遍历或搜索树、图等数据结构的经典算法。其核心思想是从起始节点出发,优先访问距离起始节点最近的所有节点,然后逐层访问更远的节点,类似于水波从中心向四周扩散的过程。 基本原理: 广度搜索的执行过程如同 “逐层扩散”:先访问起始节点的所有直接邻居(距离为 1 的节点),再依次访问这些邻居的所有未访问邻居(距离为 2 的节点),以此类推,直到遍历所有可达节点。其过程如下: 1. 从起始节点开始,将其加入队列并标记为 “已访问”。 2. 当队列不为空时,取出队首节点并访问它。 3. 将该节点所有未访问的相邻节点加入队列,并标记为 “已访问”。 4. 重复步骤 2-3,直到队列为空(所有可达节点均被访问)。 2. 深度搜索模板 时间复杂度: * 对于包含 n 个节点和 e 条边的图: 邻接表存储时,时间复杂度为 O(n+e)O(n + e)O(n+e) 邻接矩阵存储时,时间复杂度为 O(n2)O(n^2)O(n2) * 对于树(特殊的图,边数为 n-1):时间复杂度为 O(n)O(n)O(n) 优缺点: * 优点: 内存占用通常小于广度优先搜索,尤其对于深度较大但分支较少的结构。 适合解决路径查找、连通性检测、迷宫求解等问题。 * 缺点: 不保证找到最短路径(在无权图中)。 对于深度极大的结构(如深度为 10610⁶106 的树),递归实现可能导致栈溢出。 可能陷入 “深层无效路径”,在某些场景下效率较低。 C++ 实现示例: 终于要写完了吗!?不你错了,当然写不完呀! 3. 广度搜索概念 时间复杂度: * 对于包含 n 个节点和 e 条边的图: 邻接表存储时,时间复杂度为 O(n+e)O(n + e)O(n+e) 邻接矩阵存储时,时间复杂度为 O(n2)O(n²)O(n2) * 对于树(特殊的图,边数为 n-1):复杂度为 O(n)O(n)O(n) 优缺点: * 优点: 在无权图中,能找到从起始节点到其他节点的最短路径(边数最少)。 适合解决 “层次化” 问题(如按层级遍历树)。 * 缺点: 空间复杂度较高,尤其对于分支较多的结构(队列可能存储大量节点)。 不适合用于检测环路(相比深度搜索更复杂)。 C++ 实现示例: 4. 二分搜索模板 时间复杂度 * 最佳情况:目标元素是中间元素,时间复杂度为 O(1)O(1)O(1) * 最坏情况和平均情况:时间复杂度均为 O(logn)O(log n)O(logn)(n为元素总数) * 每次搜索范围减半,经过 log2n\log₂nlog2 n 次比较后即可完成 优缺点 * 优点:效率高,尤其对于大规模数据,性能远优于线性搜索 * 缺点:要求数据必须有序,且仅适用于可随机访问的结构(如数组),不适用于链表 C++实现示例片段(迭代版) 5. 线性搜索模板 时间复杂度 * 最佳情况:目标元素是第一个元素,时间复杂度为 O(1)O(1)O(1) * 最坏情况:目标元素是最后一个元素或不存在,时间复杂度为 O(n)O(n)O(n)(n为元素总数) * 平均情况:时间复杂度为 O(n)O(n)O(n) 优缺点 * 优点:实现简单,不要求数据有序,适用于任何线性数据结构 * 缺点:效率较低,尤其当数据量很大时性能表现不佳 C++实现示例 求赞!!!! 真的制作不易! 彩蛋
AAA秋褲批發lexora_哥
NP完全征服者团队招募帖 【团队介绍】 我们是一支专注于算法竞赛和编程挑战的团队,取名"NP完全征服者"寓意着我们要攻克算法领域最困难的NP完全问题。团队成立于2025年,目前已有15名核心成员,在各类编程赛事中屡获佳绩。 【招募目标】 * 算法爱好者:热爱数据结构与算法,每周能投入10+小时 * 竞赛选手:有ICPC/CCPC等比赛经验者优先 * 解题达人:在ACGO/LeetCode等平台排名前20% * 学习伙伴:愿意分享解题思路,共同进步 【团队优势】 * 定期组织内部训练赛和题解分享会 * 提供知名竞赛选手的一对一指导 * 团队解题资料库共享(含3000+精选题目解析) * 组队参加各大平台团队赛机会 【申请要求】 * 能坚持每周完成布置的训练任务 * 有良好的团队协作精神 * 需通过入队测试(3道算法题,时间2小时) 【申请方式】 * 访问团队主页:https://www.acgo.cn/team/1906638636203184128 * 点击"申请加入"按钮 * 填写申请表并完成测试题 * 等待管理员审核(通常48小时内回复) 【特别说明】 * 本招募长期有效,新手也可申请,我们将根据实际情况安排入门培训。期待与您一起征服算法世界的最高峰!
相信大家都看到这个人发的帖子了,嗯,就是那个榜⑨讲解数学的那个,他在帖子中多次造我的谣并且触及我们两的私聊隐私。 首先,拿公开聊天来举例,如果私聊就是拿来公开的,那么它存在的意义是什么?你有想过这个问题吗 其次,请看下图: 这个网址是他先推我的,没有问题,算我手欠给他打开了,那又怎样呢?我这里先不说你在学校里(他是我同学的身份)天天嗑这嗑那的,有什么消息就知道往外传,你还说上我了?你有这个资格吗?你在学校我给你的待遇也不错吧?信奥的零食基本我都给过你,对吧?为什么倒打一耙反来说我有问题呢? 第三,删评这个事,我虽然没有保留证据,但帅童的评论是他让我删的,他在底下评论了几句,让我不要让帅童看到,(内容是帅童的照片),我就把这条评论删了,那么如果,你不发这几张照片,我还至于删评吗,你有考虑过我的感受吗? 第四,关于我和他私聊的内容,你们只是看到了我忍不住喷他的内容,在这里我的底线也被触碰了,这是他网暴我的内容: 我承认,这些数学我确实不会,那也不至于这样侮辱我吧?你感觉没什么,还是那句话,你有考虑过我的感受吗?想炫你的数学好?可以啊,上次期末你也没考到年第一啊,你如果拿到了,我承认我的数学比你差,在这里我就不说他的语文有多烂了,懒得喷你。 第五,补充下第四,谁跟你说我不会因式分解?你是上帝还是预言家?如果什么都不是,请你不要用你那三寸不烂之舌再来喷这喷那! 第六:在他发的帖子中有一篇,也是关于我的,在大约7月初,我当时在参加小码王的集训营,所以签名里写了不加团队,可是在他那篇帖中,他明确写了,如果我再不加滚蛋吧c++,就拉黑我,我想说你眼睛不用就捐了,脑子不用也捐了吧。 第七,最近一段时间,包括昨天,他借着他在滚蛋吧c++中职务高为由,再次借机炫耀他的本事,这我也不想多说了,职务高是你的本事,但也没必要借这种名头来喷我吧?借鉴此图: 最后,这件事我已经和ac君以及滚蛋吧c++的团长说过了,他们怎么处置是他们的问题,但我发这篇帖不是没有原因的,被网暴我也是真的忍不住了,才发的这条帖子,不要误会。
被牢师骗走5.2刀#暑假版
定义:string 字符串名 ="字符串常量"; getling(cin,字符串名);可以输入整行 s.size() 或s.lensht()可以获取所有长度 在s1中找s2,s1.find(f2)会返回第一个元素的下标,否则返回string::npos sort排序时,要这么写:sort(s.begin(),s.end(),cmp),cmp为自定义比较规则 或者也可以这么写:sort(s.begin(),s.end(),greater<char>()),但是这是非升序排序
天之神_复仇者联盟_yzn
答案:左边的咖啡喝了只是难喝,右面的如果危险等级小于3喝了就没命
TN Hacker(彻底黑化)
自制游戏,不喜勿喷,谢谢,喜欢就点个赞吧。(玩游戏之前不要看代码,不然就没意思了) 1.0 初始游戏代码
天之神_临渊者_macw_08.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 欢迎各位选手参加 MineCode Easy Round 1 邀请赛! 比赛链接:link,邀请码:tRjk 我们现在有头图了: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 竞赛说明 本次竞赛由 MineCode 团队出题,出题人主观难度为 入门\color{red}{入门}入门 ∼\sim∼ 普及−\color{orange}{普及-}普及−。 本次竞赛为 ACGO 赛制,共 666 道题,满分 600600600 分,整体题目难度大致相当于 ACGO 欢乐赛,大致呈上升趋势。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 题目信息 对题面理解、测试数据有疑问的请私信联系dream_陆军展览。 保证每道题的时间限制均在标程的 2.52.52.5 倍以上。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 命题组 * dream_陆军展览:CSP-J2024 一等奖,担任此次竞赛出题人 & 验题人。 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 奖励 第 1∼31\sim 31∼3 名可以得到任意一种管理员(除竞赛)一个月,第一名可以成为下一次竞赛的特邀出题人,并且如果您的题目质量很高,我们可能会邀请您出公开赛并瓜分奖金。
dream_陆军展览(不加团队)
欢迎来黑金国际股份有限公司 成员排位分如下: 1. 飞的智动 150分 2. 霜 120分 3. 犟回 100分 4. ZDZL_天之神_皮皮虾_认真刘 90分 5. Macy 60分 6. \芝加哥大叔// 40分
飞的智动
1 虚数基础与常用公式 1.1 基本定义与原理 虚数是实数体系的扩展,引入了一个新的单位 iii,满足 i2=−1i^2 = -1 i2=−1 基于此,复数定义为形如 z=a+biz = a + bi z=a+bi 其中 a,ba,ba,b 为实数,aaa 是实部,bbb 是虚部(不是 bibibi)。 虚数使得二次方程 x2+1=0x^2 + 1 = 0x2+1=0 和 负数平方根有结果。 1.2 虚数的基本运算 * 加法:(a+bi)+(c+di)=(a+c)+(b+d)i(a+bi) + (c+di) = (a+c) + (b+d)i(a+bi)+(c+di)=(a+c)+(b+d)i * 减法:(a+bi)−(c+di)=(a−c)+(b−d)i(a+bi) - (c+di) = (a-c) + (b-d)i(a+bi)−(c+di)=(a−c)+(b−d)i * 乘法:(a+bi)(c+di)=(ac−bd)+(ad+bc)i(a+bi)(c+di) = (ac - bd) + (ad + bc)i(a+bi)(c+di)=(ac−bd)+(ad+bc)i * 共轭:z=a+bi,z−=a−biz=a+bi, z^- = a - biz=a+bi,z−=a−bi * 模长:∣z∣=a2+b2|z| = \sqrt{a^2 + b^2}∣z∣=a2+b2 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 2 虚数的几何常用公式与性质 2.1 欧拉公式 欧拉公式是复数领域的核心公式: eiθ=cosθ+isinθe^{i\theta} = \cos \theta + i \sin \theta eiθ=cosθ+isinθ 它将三角函数和指数函数联系起来。 2.2 复数乘法的几何解释 两个复数相乘,模长相乘,幅角相加: z1z2=r1r2[cos(θ1+θ2)+isin(θ1+θ2)]z_1 z_2 = r_1 r_2 \left[\cos(\theta_1 + \theta_2) + i \sin(\theta_1 + \theta_2)\right] z1 z2 =r1 r2 [cos(θ1 +θ2 )+isin(θ1 +θ2 )] ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 3 数学例题 3.1 例题1 计算 (3+4i)(1−2i)(3 + 4i)(1 - 2i)(3+4i)(1−2i) 的结果。 点我 👉[1] 3.2 例题2 已知复数 z=1+iz = 1 + iz=1+i,求 zzz 的模长和共轭复数。 点我 👉[2] 3.3 例题3,想做的做一下? 答案点我 👉[3] 不 要 偷 看 答 案 . . . . . . ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1. 解: (3+4i)(1−2i)=3×1−3×2i+4i×1−4i×2i=3−6i+4i−8i2(3+4i)(1-2i) = 3 \times 1 - 3 \times 2i + 4i \times 1 - 4i \times 2i = 3 - 6i + 4i - 8i^2(3+4i)(1−2i)=3×1−3×2i+4i×1−4i×2i=3−6i+4i−8i2 因为 i2=−1i^2 = -1i2=−1,所以 =3−2i+8=11−2i= 3 - 2i + 8 = 11 - 2i=3−2i+8=11−2i ↩︎ 2. 解: ∣z∣=12+12=2|z| = \sqrt{1^2 + 1^2} = \sqrt{2}∣z∣=12+12 =2 ,共轭复数为 z−=1−iz^- = 1 - iz−=1−i ↩︎ 3. 解法太长了,就不写过程了,答案是 178417841784 ↩︎
yang(Python)
团队应该怎么解散ovovovovovovovo
范特东
共16745条