Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

blog.devtang.com

唐巧的技术博客

Get the latest updates from 唐巧的技术博客 directly as they happen.

Follow now 217 followers

Latest posts

Last updated 18 days ago

GESP 202506 5级真题「奖品兑换」题解

29 days ago

题目描述分析此题首先是不能暴力枚举的,因为 n 和 m 最大情况下是 10^9,这个数据规模,暴力枚举肯定会超时。然后我们可能想到贪心,但实际可落地的贪心的策略总是有特殊情况。最后,假如我们可以检查一个答案是否可行,我们就可以用二分答案+判定的方法求解。二分还有一个要求,就是答案是单调递增的。我们可以想像,随着兑换券的递增,如果限定 n 的值不变,那 m 的值肯定是递增的。所以此题符合单调递增的条件。解法那么,对于一个可能的答案 k,我们怎么检查答案是否可行呢?我们先把 n...

构建你的“多巴胺”系统

about 1 month ago

什么是“多巴胺”系统“多巴胺”系统是一种隐喻,是指能够给你带来持续正反馈/正向情绪的事情。之所以用这个隐喻,一方面是想让大家更容易理解、记忆和传播这个系统。这个系统对我来说非常重要,它就相当于我人生的“第一性原理”一样。人类看起来是自己的主人,但人类对自身行为动机的理解很多时候并不清楚。马斯洛把人类的需求按层次来分,在他的理论中提到的各种需求:性,安全,食物,社交,自我实现等等。但是其实,这些其实本质上,都是在为人类提供“多巴胺”。当人类失去了“多巴胺”系统,很多时候就宁愿放弃生命:比如在战争中,很多人为了信仰而牺牲自己。这是因为他内心的目标大于活着的意义。在实际生活中,虽然不至于放弃生命,但冒着生命危险做的事情,也不鲜见。比如消防队员救人、警察和歹徒搏斗、或者体育健儿在赛场上带伤为荣誉而战。这些行为虽然有可能失去生命,但是换来的荣誉与成就是非常让人自豪的,可以为自己提供终身的多巴胺来源。有人说,这个世界上只有两种生意:让人爽的生意和让人牛逼(学习、健身等)的生意。但我觉得,这都是多巴胺的生意,差别只是一个是提供短期多巴胺,一个是提供长期多巴胺。学习这种事情虽然短期很辛苦,但是收获的成就是可以提供长期的回报,从而提供长期的多巴胺。为什么“多巴胺”系统很重要1、人对生活的意义有需求看看全世界有多少人信教就明白了。大部分人都需要精神上为生命的存在赋予意义。意义感会驱使人们面对挑战和困难、提供情绪支撑、获得幸福感。在中国,很少有人信教,但是我们每一个普通人也有自己对生命的追求,哪怕是更好一点的生活,或者一个遥不可及的理想,又或者是简单地照顾好家人和孩子。人生的目标带动着每一个人在各种重大决策的十字路口上做选择。韩寒为了赛车辍学;赵心童为了台球远赴英国;崔永远为了自由表达离开了央视;而我身边,一个亲人为了更好的照顾孩子而放弃了工作上的晋升机会。“多巴胺”系统就是为人生的意义提供基础能量的仓库,守护好多巴胺系统,人生之路就会走得更加从容。2、“多巴胺”系统不容易构建我们随便看看身边,就会发现无论是学习、工作,还是退休安排和日常生活。“多巴胺”系统的构建都是非常不容易的。2.1 学习拿学习来说,如果将孩子的“多巴胺”系统和学校排名、升学挂钩,那么很多孩子是无法构建学习的“多巴胺”系统的。因为每个班几十个孩子,必然有排在后面 50% 的孩子。这些孩子从排名上是无法获得正向激励的。另外,整个学习是一个不断淘汰对手的游戏。中考会淘汰 50% 的学生分流到中专,高考又会分流 50% 的人到职高,大学又会分流 90% 的学生到非重点大学。研究生考试又会分流 2/3 的本科生,只剩下...

GESP 大题核心考点

about 2 months ago

GESP 1 级1 级主要考查分支和循环结构,所以大题的解法一般都是一个 for 循环,然后循环里面用 if 之类的条件判断做一些事情,最后再输出结果。其代码框架为:123// 循环结构, 例如 for...

CSPJ 教学总结:树状数组

3 months ago

引言树状数组是挺不好教学的一个知识点。它需要以下前置知识:二进制表示法及熟练的位操作前缀和的知识树的基础知识时间复杂度的估算在教学的时候,我们的教学顺序如下:先引入问题lowbit 函数讲解树状数组的结构特点利用树状数组求前缀和的方法怎么修改树状数组的值如何初始化树状数组增加值或替换值二维的树状数组那么让我们来开始。问题的引入P3374 树状数组 1 是一道标准的树状数组问题:该题目给我们了一个数列,我们需要解决以下两个问题:数列的区间求和更新某一个数(加上 x)我们很容易想到用暴力的方法来做此题。于是我们可以估计一下暴力的时间复杂度:数列的区间求和,时间复杂度 O(N)更新某一个数,时间复杂度 O(1)题目中提到,求和的次数最多为 M 次,所以最坏情况下,时间复杂度为 O(M*N)。而由于 M...

CSPJ 教学总结:深度优先搜索(DFS)

4 months ago

深度优先搜索(DFS)是学生学习算法的第一道门槛,因为它的主要形式是递归。而递归中需要将搜索的相关信息通过参数传递,这一点需要学生深刻理解 DFS。模版DFS 有比较标准的模版,如下所示:1234567891011121314void dfs(int pt) // pt 表示层数{ if (终止条件) { //...

CSPJ 教学总结:STL

4 months ago

先记录一下写作点:string 类型substrfindreplaceinserterasec_str容器pairvectordequeliststackqueuepriority_queuemapunordered_mapsetunordered_set函数sortstable_sortuniquenext_permutationnth_elementlower_boundsupper_bounds__gcd

CSPJ 教学思考:数学题

4 months ago

数学题是信息学竞赛中重要的一类题目,通常包括几何、数论、容斥原理等。本文将相关的题目归纳整理,用于教学。几何P2241 统计方形本题解法:每个矩形(包括正方形)都可以由一段左边线段和一段上边线段确定。因此,我们只需要枚举所有可能的线段。对于一个长是 N 宽是 M 的棋盘。左边的线段长度为 1 的有 N 个,长度为 2 的有...

CSPJ 教学思考:枚举

4 months ago

例题:P1304 哥德巴赫猜想此题直接枚举每个合数拆解成两个质数和的所有可能性。为了避免重复计算质数,我们用一个 map 将其运算结果保存下来。123456789101112131415161718192021222324252627282930/** * Author: Tang Qiao */#include <bits/stdc++.h>using namespace std;map<int...

CSPJ 教学思考:模拟

4 months ago

模拟是最有效的练习编程熟练度的基础算法,也是有效的掌握各种编程技巧的练习方式。本文将把各种模拟技巧与题目结合,用题目带着学生掌握这些模拟技巧。二维数组包边有些时候,我们在处理二维数组的时候,需要处理 x,y 坐标的边界。这样写起来会比较麻烦,但是,如果我们将数据从下标 1 开始保存,那么就人为在数据外面留了一圈缓冲带。这个时候,在处理 x,y 周围坐标的时候,就不会出现数据下标越界的情况了。例题:P2670 NOIP 2015 普及组 扫雷游戏该题如果正常写,需要判断每个格子周围 8...

斑马思维机的详细调研

5 months ago

一、产品介绍斑马思维机是针对 2-8 岁儿童推出的全科启蒙学习机。由在线教育集团“猿辅导”旗下的斑马品牌在 2022 年 11 月推向市场,并在 2023 年 8 月升级为二代产品:斑马思维机 G2。它包含语文、思维、英语、音乐等学科内容,通过纸质的题卡结合点触交互的形式,让孩子在不同情景主题场景下互动,通过互动答题的形式,完成内容的教学。答对有鼓励,答错会有提醒,孩子可以自主完成从插卡到答题的整个过程。相比别的早教学习机,斑马思维机的核心特点是没有传统的屏幕。它用纸质题卡来完成学习交互,在完成学习的同时可以有效保护低幼孩子的眼睛,防止过早接触电子屏幕产生沉迷。产品上线后累计销量突破...

CSPJ 教学思考:并查集

6 months ago

并查集在引入之前,需要先教会学生集合的概念。集合集合是数学中的一个基本概念,它是由一些确定的、彼此不同的对象所组成的整体。集合有两个特点:集合中的元素是互不相同的。集合中的元素没有顺序之分。比如集合 {1, 2, 3} 和 {3, 2, 1} 是同一个集合。生活中的集合有很多,比如:班级,家庭成员,朋友等等。所以,学生还是比较容易理解的。并查集并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。并查集支持两种操作:查询(Find):查询某个元素所属集合(查询对应的树的根节点),这可以用于判断两个元素是否属于同一集合合并(Merge):合并两个元素所属集合(合并对应的树)在教学并查集的时候,画示意图可以很好地让学生理解并查集的操作。并查集的初始化我们用数组来表示并查集,用数组的值表示当前结点的父亲。如下图所示:所以,初始化的代码如下:12345678#define MAXN 1010int p[MAXN]...

CSPJ 教学思考:二分查找

6 months ago

概述二分查找的基础逻辑很简单:我们小时候都玩过猜数字游戏,心里想一个数字( 数字范围是 1-100),让对方猜,如果没猜对,就只告诉对方猜大了还是小了,看看最快几次能猜到。这个游戏的最佳策略就是二分。先猜 50,如果大了,就猜 25。这样最多 7 次就可以猜到答案。基础模版对于猜数字这个游戏来说,二分的模版最简单的就是如下形式:1234567891011121314151617// 二分查找int left, right, mid, ans;left...