Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.
Get Feederblog.devtang.com
Get the latest updates from 唐巧的技术博客 directly as they happen.
Follow now 211 followers
Last updated 13 days ago
13 days ago
并查集在引入之前,需要先教会学生集合的概念。集合集合是数学中的一个基本概念,它是由一些确定的、彼此不同的对象所组成的整体。集合有两个特点:集合中的元素是互不相同的。集合中的元素没有顺序之分。比如集合 {1, 2, 3} 和 {3, 2, 1} 是同一个集合。生活中的集合有很多,比如:班级,家庭成员,朋友等等。所以,学生还是比较容易理解的。并查集并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。并查集支持两种操作:查询(Find):查询某个元素所属集合(查询对应的树的根节点),这可以用于判断两个元素是否属于同一集合合并(Merge):合并两个元素所属集合(合并对应的树)在教学并查集的时候,画示意图可以很好地让学生理解并查集的操作。并查集的初始化我们用数组来表示并查集,用数组的值表示当前结点的父亲。如下图所示:所以,初始化的代码如下:12345678#define MAXN 1010int p[MAXN]...
28 days ago
概述二分查找的基础逻辑很简单:我们小时候都玩过猜数字游戏,心里想一个数字( 数字范围是 1-100),让对方猜,如果没猜对,就只告诉对方猜大了还是小了,看看最快几次能猜到。这个游戏的最佳策略就是二分。先猜 50,如果大了,就猜 25。这样最多 7 次就可以猜到答案。基础模版对于猜数字这个游戏来说,二分的模版最简单的就是如下形式:1234567891011121314151617// 二分查找int left, right, mid, ans;left...
about 2 months ago
引言动态规划是 CSPJ 拉分的关键知识点。之所以这样,是因为动态规划不像 DFS、BFS、二分那样有固定的模版格式。学生要在动态规划问题上融汇贯通,需要花费大量的练习,也需要足够的聪明。笔者自己在高中阶段,也是在动态规划问题上困扰许久。我自己的学习经验是:动态规划还是需要多练,练够 100 道题目,才能够熟悉动态规划的各种变型。之后在比赛中看到新的题目,才会有点似曾相识的感觉,进一步思考出状态转移方程。所以,我打算写 100 道动态规划方程的题解,希望有志攻破此难关的学生和家长一起加油!教学题目推荐的教学题目如下:题目名说明P2842 纸币问题 1基础 DP,记忆化搜索P1216 数字三角形基础...
about 2 months ago
1、概述贪心算法讲起来容易,就是问题求解的每一步,都用一个局部最佳的策略,如果能够证明局部最佳的策略最终能够保证全局最佳,则可以用贪心算法。在实际 CSPJ 比赛中,我们不用严谨的求解和证明,只需要尝试做一些反例,如果反例中找不到问题,就可以先用贪心求解。毕竟比赛中时间的权重因素比较高。在教学中,我们先通过简单的题目让学生理解贪心的概念。之后就可以逐步增加难度,让学生意识到,写出贪心可能容易,但是想到贪心这种解法在比赛中并不那么显而易见。贪心通常伴随着排序,所以对 STL 的 sort 以及 priority_queue 的熟练应用也是快速解决贪心题目的必备基础,在学习相关题目的时候,可以重点加强巩固相关知识点。2、sort 函数sort 函数内部使用快速排序实现,时间复杂度为 O(N*log(N))。对于数据规模为...
about 2 months ago
一、工作财务视角2024 年从财务视角,业务整体有不小的进步。23 年虽然业务增长不错,但是整体有将将近千万的亏损,而 24 年整体的赢利是上千万的。所以业务整体健康度更高。当然,因为我们严卡利润率,我们的营收规模在 2024 年基本上没有什么增长,还是在 2 个亿左右。希望 2025 年有所增长。海外业务在收缩为一人之后,也有不小的起色。我们在韩国还是找到了一条基于 coupang...
2 months ago
其实我以前一直不理解雷军。原因一是我在猿辅导工作,我们做的产品都是追求创新和高品质。因为成本不低,所以我们的产品定价不那么便宜。像我们公司的学练机、月子中心、咖啡、月龄盒,以及我负责的斑马玩教具,说实话定价在行业都是比较高的。原因二是我比较欣赏的人,不管是公司内部的同事,还是公司外部的一些人,都对 “性价比” 这个词表现出不喜欢。这种不喜欢主要是站在商业角度,这种模式做起来太辛苦,太容易失败。原因三是我自己曾负责过一款基于微信传播的英语学习产品。在这个产品失败前,我们尝试过极致的低价,但是最后并没有带来同等回报的增长,所以我知道,低价并不好做。最近读了根据雷军口述整理出来的《小米创业思考》,终于有那么一点点理解雷军要做什么了。以下是一些感悟。雷军的 “极致性价比” 逻辑雷军的 “极致性价比” 的想法来自 Costco,他在采访中说,一个在中国国内卖几千块钱的新秀丽的行李箱,在 Costco 只需要几百块钱。同时,雷军是一个有比较多社会责任感的企业家,他希望在互联网时代,大家可以用厚道的价格买到极致体验的东西,于是,小米成了他这个理想的实践地。企业的存在,首先是因为有社会价值,即用户需求。首先因为用户需要某种服务,才会有相应的企业存在。在用户需求的基础下,企业才会有自己的经营使命和战略,战略应该围绕着自己的社会价值,去更好地满足自己的社会价值,这样的企业才能活得更久。小米运用 “极致性价比” 逻辑,选择了一个极度差异化的经营模式,这种模式下:小米的产品具备独特的价值:性价比高。小米的产品总成本领先:因为量大。小米的竞争对手难以模仿。因为这种模式太难生存了。所以,小米其实是选了一条几乎没有人,也几乎没有人走成功的路。所以,了解完小米的逻辑之后,我理解了雷军。其实常见的经营模式雷军都知道,也都理解,但是雷军就是想走一条不一样的路。同时他也认为这条路虽然难,但是对于开创者的回报巨大。小米如何完成...
2 months ago
在学习完数据结构队列(queue)后,就可以让学生学习宽度优先搜索了。宽度优先搜索(BFS)的形式相对固定,但是写起来代码偏长,学生在学习的时候,老是容易忘掉一些环节,所以需要加强练习。1、模版记忆我整理了一个 BFS 的模版,每次教学前让孩子复述这个环节,通过这种方式来强化模版的记忆,帮助学生掌握这个算法。模版如下:void bfs() {queue< ? > q;q.push( ? );标记 ? 已经处理while...
3 months ago
查了好多资料,大多是不能 work 的。感谢这个视频教程:https://www.youtube.com/watch?v=LmR8sRcqbq0,最终帮我完成了需求。以下是步骤概述:1、在命令行执行:echo | g++ -v -x c++ -E -,我的运行结果如下:> echo |...
3 months ago
最近看了 DeepMind 联合创始人和微软人工智能 CEO 苏莱曼的 《浪潮将至》。该书主要介绍了未来极大可能改变世界的三个技术领域,分别是人工智能、合成生物学、量子技术。以下是一些读书感悟。颠覆技术的对抗非对称性对抗非对称性指:拥有颠覆技术的一方可以用极小的力量对抗过去不可能对抗的力量。这可以类比为在冷兵器时代拥有机关枪的一个人就可以对抗一整个敌人军队。核武器的对抗也具备非对称性。拥有核武器的一方对非核国家也具备碾压性的优势。当然,后面全球努力在限制这种能力,以免被恐怖组织拥有带来全球的灭顶之灾。人工智能的非对称性体现在对很多方面:拥有超级人工智能的组织的生产力可以是千倍于传统生产力。书中列举了 DeepMind 公司在预测蛋白质结构上的突破,在这个技术出现之前,人类的蛋白质结构数据库中只有大概 20 万个蛋???质结构。DeepMind 公司一次性上传了 2...
4 months ago
背景和问题小学生在学习编程的时候,我们必然需要使用电脑上机练习。但是,电脑上也充满了各种“诱惑”:打开网页无处不在的游戏广告,很多游戏还是网页游戏应用市场里各种各样的游戏小红书,B 站等各种各样的网站也充满吸引力 那我们如何保证孩子能够在上机的时候一直专心练习编程呢?难道得一直在旁边盯着吗? 为此,我做了一些功课,分享给大家。解决方案(Windows 平台)微软的 Windows 操作系统中有一个家长控制功能。通过该功能家长可以限制小朋友对计算机功能的使用,以及规定和限制使用 Windows 的某些功能。例如: 限制孩子的账户只能使用某个应用程序、游戏等。使用 Windows 的家长控制功能可以在不安装其它软件的情况下,控制孩子使用Windows的绝大部分应用和功能。具体操作方式如下。1、为孩子创建一个单独账号按下键盘上的“Windows”键+“I”键打开设置→点击“账户”点击左侧的“账户/家庭和其他用户”,并“添加账户”在弹出的窗口中点击“为孩子创建一个”,按步骤创建新的Microsoft账户用新建的账户登录,在“概述”里面的隐私设置里打开“共享我的活动”,如下图2、在线管理家庭设置用家长账户重新登录电脑再次按下“Windows”键+“I”键打开设置→点击“账户”点击左侧的“账户/家庭和其他用户”点击“在线管理家庭设置或删除账户”打开管理链接在管理链接中就可以管理孩子的时间了。解决方案(Mac...
4 months ago
背景和问题在学习编程的时候,像变量,赋值,输入,输出,分支这些逻辑相对容易理解。因为这与人类真实世界的很多行为相似,所以学生会很容易吸收。具体来说:变量其实就是我们平时取的“名字”或者“外号”,用于指代一种特定物品。赋值相当于为这种特定物品指定一种属性值,像是苹果的重量,价格一样。输入和输出在很多电子产品中都有接触,孩子现在很小就接触手机,非常容易理解键盘就是一种输入,屏幕显示就是一种输出。分支就是我们自然语言中的“如果…就”,非常容易类比。但是,for 循环由于其很难与现实世界“类比”,所以成为小学生学习编程的第一个障碍。如何理解 for 循环,并且灵活运用 for 循环,成为一个教学难点。教学思考我在教学 for 循环的时候发现,如果我们用尽量渐进式的方式,让孩子刚开始接触到的 for 循环与现实世界数学中的数列一一对应。然后,再一步一步拔高难度,随着难度提高,最终 for 循环可以实现求解“非波拉切数列”以及“小数点后...
4 months ago
最近读了《段永平投资回答录》,分为商业逻辑篇和投资逻辑篇。一些感受深的点记录一下。不为清单段永平说:我们之所以成为我们,很多时候不是因为我们做了什么,而是因为我们不做什么。查理芒格说:如果知道我会死在哪里,我将永远不会去那里。两个人的观点很相似,就是用“不做/不去”的方式来限制自己的行为。为此,段永平为自己的企业经营制定了“不为清单”(Stop doing list)。这些不为清单确实帮助企业经营划清了一些原则和边界。在段永平的不为清单里:有一些是关于企业文化价值观的,比如:不攻击竞争对手、不拖付货款。有一些是关于企业安全经营边界的,比如:不赊账、不代工、不借钱。有一些是关于企业发展原则的,比如:不做不擅长的事情、不做没有差异化的产品。不为清单在企业管理上具备很强的高效性。因为如果是要为清单,那么这个清单可能很长,也可能很模糊,最终大家一来记不住,二来不知道执行到什么程度。但不为清单就简单很多,遇到相似的事情,不做就可以了。附上段永平的不为清单,如下:专注。不做不擅长的事情。不借钱。不负债就不会倒闭。没有销售部。不讨价还价。不赊账。不拖付货款。不晚发工资。不做不诚信的事情。不攻击竞争对手。不打价格战。不谈性价比。不做没有差异化的产品。不弯道超车,关注自己的进步,面对客观的事物发展和成长的规律。不收购不多元化不关注市占率,不关注销量排名不盲目扩张不赚快钱不虚夸产品价值投资的逻辑段永平在书中帮我再次梳理了价值投资的逻辑,段永平说:买股票就是买公司,买公司就是买其未来的现金流折现。说说我个人的理解:买股票就是买公司,指的是用“长期拥有一家公司的心态来考量自己的买入交易”。怎么样才是“长期拥有”的心态呢,比如问自己:如果这家公司退市了,你会不会紧张如果这家公司停牌 10 年不能交易了,你会不会接受如果这家公司股价跌了,你会不会开心(因为你可以继续买入)有人说,退市了我怎么卖掉?但是,如果你是用拥有公司的心态在买股票,首先就不应该考虑短期买卖,也不应该用着急需要用的短期资金。有人说,股价跌了我持仓亏损怎么办?但是,如果这家企业的内在价值(即:未来现金流)是没有变化的,那么它未???会持续给你贡献高的收益回报,股价长期而言也会在内在价值基线上下波动。所以这反而是一个好的买入机会。所以,价值投资将股票的买卖转变为了三个事情的考量:1、公司好不好2、企业文化和管理层3、价格是否划算(有安全边际)公司好不好对于公司好不好的考查方式有很多,比如毛利率,经营壁垒,增长率等等,但段永平用他与巴菲特午餐时,巴菲特的回答总结道:最重要的是商业模式。什么是商业模式呢?我理解为这家公司的“天赋”,即:环境变化也很难被改变的东西。不同的商业模式决定了一些公司会很辛苦才能活下来,另一些公司很轻松就可以活下来。举个例子:斑马玩教具做的是 2-6 岁孩子的教育硬件,因为一款硬件的使用寿命大概有 3 年左右,所以,同一款产品几乎不会有复购的。但是我们看苹果手机,同样是 3 年左右的使用寿命,但是因为用户在生命期内可能每 3...