刷新
算法笔记 - 树的直径

博主头像 树的直径 定义 性质: 树的直径是树上最长的链,即树上任意两点间距离的最大值,可能有多条。 若树无边权,则所有直径的中点相同。 求法: 两次 \(DFS\)。 第一次,以任意节点为根,搜索到距离自己最远的点,这个点就是直径的一个端点。 第二次,以第一次求得的点为根,搜索到距离自己最远的点,这个点就是 ...

蓝桥杯2022年A组国赛

博主头像 2022年A组国赛 小蓝与钥匙 题目大意: ​​ 题解: 显然,$ans=C_{28}^{14}\cdot f\left[ 14 \right]$ 其中 f[i] 表示i个人都没拿到自己的钥匙的情况数 f[i] 的递推式见代码 Code: #include <bits/stdc++.h> using ...

菜狗的KMP学习

博主头像 为什么我们要学习KMP呢?这就不得不说起当年暑假在校队集训的时候,苦逼做不出题目的痛苦时光了。 三个人看着题目中字符串匹配的那个环节,思索了整整三个小时。 不得不说,从0到1,远比在前人的肩膀上前行要难得多。真不知的这些变态大佬是怎么想出来的。 先来提及一下,当时我们用人脑想出来的代码(我没有说他们 ...

BWO白鲸优化算法

白鲸算法 ​ 白鲸算法(BWO)是一种新的元启发式算法,是一种基于群体的算法,其灵感来自于白鲸的行为,包括游泳,猎物和鲸落。在BWO的数学模型中构建了勘探,开发和鲸落阶段,并在开发阶段利用Levy飞行函数来提高BWO的收敛能力。 勘探阶段 ​ 由于BWO基于种群的机制,将白鲸作为搜索代理,每条白鲸都 ...

AtCoder Beginner Contest 346

博主头像 A - Adjacent Product (abc346 A) 题目大意 给定\(n\)个数,依次输出相邻俩数的乘积。 解题思路 按照题意模拟即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; using LL = long long; i ...

第十四届蓝桥杯大赛软件赛省赛Python 《三国游戏》

博主头像 问题描述 问题类型 排序,贪心算法。 问题分析 当第i个事件发生时会分别让X,Y,Z增加Ai,Bi,Ci 即当某个事件发生时,三国各增加士兵数Ai,Bi,Ci。 如果X,Y,Z的其中一个大于另外两个之和,我们认为其获胜。 即当n个事件都确定了是否会发生后,存在X,Y,Z中任一大于另外两个之和,则有其 ...

AtCoder Beginner Contest 345

博主头像 A - Leftrightarrow (abc345 A) 题目大意 给定一个字符串,问是不是形如< ... >的字符串。 解题思路 根据长度构造出期望的字符串,再判断是否相等即可。 神奇的代码 s = input() print("Yes" if s == "<" + "=" * (len(s) ...

灰狼优化算法(MOGWO)

本文首次提出了多目标灰狼优化算法( Multi-Objective Grey Wolf Optimizer,MOGWO )来优化多目标问题。在GWO中集成一个固定大小的外部存档,用于保存和检索Pareto最优解。该档案被用来定义社会等级和模拟灰狼在多目标搜索空间中的狩猎行为。将所提方法在10个多目标... ...

RSA算法揭秘:加密世界的守护者

博主头像 RSA算法起源: RSA算法是由Ron Rivest、Adi Shamir和Leonard Adleman在1977年共同提出的。它是一种非对称加密算法,基于两个大素数的乘积难以分解的数论问题。RSA算法包括公钥和私钥,用于加密和解密数据,实现了安全的通信和数据传输。 首页 | 一个覆盖广泛主题工具 ...

DES算法揭秘:数据加密的前沿技术

博主头像 DES算法起源: DES(Data Encryption Standard)算法是一种对称密钥加密算法,由IBM的Horst Feistel设计,于1977年被美国国家标准局(NBS)确定为数据加密标准。DES算法基于分组密码,采用置换、替换和迭代运算,用于保护数据的机密性。 DES加密解密 | 一 ...

HMAC算法:数据传输的保护神

博主头像 HMAC算法起源: HMAC(Hash-based Message Authentication Code)算法是由Mihir Bellare、Ran Canetti和Hugo Krawczyk于1996年提出的一种基于哈希函数的消息认证码算法。HMAC算法结合了哈希函数和密钥,用于验证消息的完整性 ...

【算法】二分查找——BinarySearch

博主头像 一、概述 二分查找又称折半查找,是一种能够大幅减少时间复杂度的查找方法,但是二分查找要求线性表必须词用顺序储存结构,而且表中元素按关键字有序排列。 在后续讨论中,我们假设有序表递增有序。 二分查找中使用的术语: 目标 Target —— 你要查找的值 索引 Index —— 你要查找的当前位置 左、 ...

leetcode: 2789. 合并数组中的最大元素

给你一个下标从 0 开始、由正整数组成的数组 nums 。 你可以在数组上执行下述操作 任意 次: 选中一个同时满足 0 <= i < nums.length - 1 和 nums[i] <= nums[i + 1] 的整数 i 。将元素 nums[i + 1] 替换为 nums[i] + nums ...

leetcode: 2861. 最大二进制奇数

给你一个 二进制 字符串 s ,其中至少包含一个 '1' 。 你必须按某种方式 重新排列 字符串中的位,使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。 以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。 注意 返回的结果字符串 可以 含前导零。 示例 1: 输入: s = "0 ...

力扣刷题笔记-86 单链表的分解

博主头像 你说你会改变,但是你只是为了解决当时的冲突而讲的话。 给你一个链表头节点head和x,要求链表中所有小于x的节点都出现在大于或等于x的节点之前 例如:head = [1,4,3,2,5,2], x = 3; 输出:[1,2,2,4,3,5] 在合并两个链表的时候,是将两个链表合并成一个,拆分的时候, ...

leetcode: 2129. 将标题首字母大写

给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 : 如果单词的长度为 1 或者 2 ,所有字母变成小写。 否则,将单词首字母大写,剩余字母变成小写。 请你返回 大写后 的 title 。 示例 1: 输入:title ...

计算几何——扫描线 学习笔记

博主头像 计算几何——扫描线 学习笔记 你会发现我的笔记的顺序和很多扫描线的讲解是反着来的。 其实是和我老师给的课件完全是逆序(谁帮我算一下逆序对啊喵)。 前言 一开始以为扫描线就是用来求二维几何图像的信息的。 但是其实这个并不准确。个人认为,扫描线其实是一个思想,就像动态规划一样。 具体的,其思想为,用一根 ...

Acwing166 数独题解 - DFS剪枝优化

博主头像 166. 数独 - AcWing题库 题意 数独 是一种传统益智游戏,你需要把一个 9×9 的数独补充完整,使得数独中每行、每列、每个 3×3 的九宫格内数字 1∼9 均恰好出现一次。 请编写一个程序填写数独。 思路 搜索+剪枝(优化搜索顺序、位运算) 优化搜索顺序:很明显,我们肯定是从当前能填合法 ...

AtCoder Beginner Contest 344

博主头像 A - Spoiler (abc344 A) 题目大意 给定一个字符串,包含两个|,将|和两个|之间的字符消去。 解题思路 按照题意模拟即可。 Python比较简洁。 神奇的代码 s = input().split('|') s = s[0] + s[2] print(s) B - Delimite ...

<1···272829>