背包问题 简介背包问题(英语:Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中,背包的空间有限,但我们需要最大化背包内所装物品的价值。背包问题通常出现在资源分配中,决策者必须分别从一组不可分割的项目或任务中进行选择,而这些项 2024-07-16 算法 #算法
拓扑排序 定义拓扑排序(Topological sorting)要解决的问题是如何给一个有向无环图的所有节点排序。 拓扑排序的目标是将所有节点排序,使得排在前面的节点不能依赖于排在后面的节点。 例如著名的造计算机游戏 Turing Complete 中的关卡,如下图箭头所指,你只有在完成前面三关后才可以解锁箭头所指的关卡。拓扑排序要完成的就是这样一个功能,前面的关卡不能依赖于排在后面的关卡,也就是说排完序后 2024-07-15 算法 #算法
课程安排 题目链接: [传智杯 #2 决赛] 课程安排 - 洛谷 题目描述传智播客的课表上按顺序提供 $n$ 节课程,课程可能是 Java、Python 或者前端开发等等,我们用不超过 $n$ 的正数代表每一节课程的种类。学员可以从这个课程序列选取连续的一小段的课程序列,作为一周的学习任务。 为了使学习任务不那么枯燥,学员不想连续上两节相同的课。特殊的,这一周学习任务的开头和结尾也不能是相同的课。为了保证 2024-07-04 算法 #题解
打字练习 题目链接: 打字练习 - 洛谷 题目描述R 君在练习打字。 有这样一个打字练习网站,给定一个范文和输入框,会根据你的输入计算准确率和打字速度。可以输入的字符有小写字母、空格和 .(英文句号),输入字符后,光标也会跟着移动。 输入的文本有多行,R 君可以通过换行键来换行,换行后光标移动到下一行的开头。 R 君也可以按退格键(为了方便,退格键用 < 表示),以删除上一个打的字符,并将光标回移一 2024-07-04 算法 #题解
[AHOI2018初中组] 分组 题目链接: [AHOI2018初中组] 分组 - 洛谷 题目描述小可可的学校信息组总共有 $n$ 个队员,每个人都有一个实力值 $a_i$ 。现在,一年一度的编程大赛就要到了,小可可的学校获得了若干个参赛名额,教练决定把学校信息组的 $n$ 个队员分成若干个小组去参加这场比赛。 但是每个队员都不会愿意与实力跟自己过于悬殊的队员组队,于是要求分成的每个小组的队员实力值连续,同时,一个队不需要两个 2024-07-03 算法 #题解
Kratos-Realworld 项目链接: GitHub - serendipity565/Kratos-realworld RealWorld有官方文档,并且有不同语言不同架构的实现。 本项目采用的是Go语言的kratos的微服务模式实现后端服务,Kratos微服务采用的是类似DDD的结构,在Kratos的官方文档有说明,下图是官方文档上的结构说明。 在本项目中,结构结构如下: 2024-06-20 开发 #Go
深入理解C语言指针 指针是C语言中一个非常强大且重要的概念,它不仅能够提供直接的内存访问,还能用于实现许多高级的数据结构和算法。然而,指针的概念相对复杂,新手程序员常常感到困惑。本文将深入探讨C语言中的指针,从基本概念到高级应用,帮助你全面理解指针的使用。 引入、什么是内存地址内存地址是计算机系统用来访问内存中某个特定存储单元的标识符。每个存储单元都有一个唯一的地址,就像每个房子都有一个唯一的门牌号码。 内存地址的范 2024-06-15 开发 #C/C++
Mike and gcd problem 题目链接: Problem - 798C - Codeforces 题目描述迈克有一个长度为$n$的序列 $A = [a_1, a_2, …, a_n]$ 。如果序列 $B = [b_1, b_2, …, b_n]$ 中所有元素的 gcd 都大于 1 ,他就认为这个序列 $B = [b_1, b_2, …, b_n]$ 很美,即$gcd(b_1, b_2, …, b 2024-05-11 算法 #题解
怎么理解CAP理论 分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。 分布式系统的最大难点,就是各个节点的状态如何保持一致。CAP理论是在设计分布式系统的过程中,处理数据一致性问题时必须考虑的理论。 什么是CAP理论CAP即: Consistency(一致性) Availability(可用性) Partition tolerance(分区容忍性) 这三个性质对应了分 2024-05-09 开发 #后端
注册中心 注册中心基本概念什么是注册中心?注册中心主要有三种角色: 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。 服务消费者(RPC Client):在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。 服务注册中心(Registry) 2024-05-09 开发 #后端