自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Coding home - 漂流瓶jz

Web前端开发,华东师范大学计算机硕士

  • 博客(432)
  • 收藏
  • 关注

原创 (个人简介)Coding Home - 漂流瓶jz

华东师范大学 计算机专业硕士。Web前端开发工程师。部分文章的相关代码会放在GitHub上。

2017-03-14 10:56:18 854 1

原创 UVA-211 多米诺效应 题解答案代码 算法竞赛入门经典第二版

又是一道不难的题目。但是输出格式(空行)比较特别,我对照着uDebug改了才AC。我是用从上到下,从左到右,对每个点尝试每种可能的牌。

2024-09-17 19:39:38 168

原创 UVA-225 黄金图形 题解答案代码 算法竞赛入门经典第二版

已经访问过的块不能再次被访问,注意这里限制的是每次移动的起点和终点,中间路过已访问过的块是可以的。然后输入中哪些的阻碍的块是不能穿过的,即使移动起点和终点不在阻碍块上,只是中间路过也不行。一道不难的题目,即使不用什么剪枝方法,也不会超时,可以AC的。首先要根据字典序输出,即'e', 'n', 's', 'w'所以实际上是有两种逻辑不同的限制块类型。

2024-09-17 00:14:49 217

原创 使用天地图与Leaflet,轻松创建免费地图应用

天地图又叫做地理信息公共服务平台,是提供给公众免费使用的地理信息平台,提供了多种形式的地图开发资源,使用天地图,可以构建免费的地图应用。Leaflet是一个开源的Javascript地图库,我们使用它来进行地图的展示和交互。

2024-09-14 23:33:15 1282

原创 UVA-208 消防车 题解答案代码 算法竞赛入门经典第二版

这里有同学会问,遍历连通图也用的是DFS呀,为啥不会超时?因为我们要记录路径,所以DFS函数退出时要设置重新设置点为未访问过。但是连通图并不需要。所以连通图要快很多。另外题目的输出样例不对。看起来是%4d或者\t,但实际上就是普通的单个空格,甚至最前面不用空。直接用DFS遍历会超时。要先遍历一遍连通图,看看1和终点是否联通。一道不难的DFS题目。

2024-09-07 21:06:05 246

原创 UVA-1603 破坏正方形 题解答案代码 算法竞赛入门经典第二版

我又尝试了第一种的搜索对象是正方形的方法,一开始没有用迭代加深搜索,发现时间超级长。后来使用迭代加深搜索之后,直接AC了。AC代码可以优化的空间还很大,目前剪枝的方法都没用到。

2024-08-17 23:36:42 188

原创 CSS优先级,没你想的那么简单!全面介绍影响CSS优先级的各类因素

CSS优先级的判断,牵涉了太多CSS中的不同主题。可以说优先级的概念,贯穿了整个CSS领域。下面我们就来分别聊一下,这些主题是如何影响到CSS优先级的。

2024-08-11 23:43:12 538

原创 Vue中的事件总线(EventBus)是什么?它有什么优点和缺点?

事件总线是一种组件通信方式,用于在工程的中的任意组件中进行事件触发和数据传递。通过在全局创建一个事件总线,所有组件(无论他们的关系是父子还是兄弟还是不相关)都可以使用同一个总线发送事件和监听事件,传输数据。这样通信就可以不受组件间关系限制,实现灵活的通信能力。事件总线作为一种全局的组件通信方法,符合订阅发布模式,由于其简单有效的使用方式,受到部分开发者的欢迎。但是由于各种使用不慎和维护带来的问题,官方和许多开发者也不推荐使用:在绝大多数情况下,不鼓励使用全局的事件总线在组件之间进行通信。

2024-03-01 22:11:58 2051

原创 带你搞懂JavaScript中的原型和原型链

原型和原型链是JavaScript中与对象有关的重要概念,但是部分前端开发者却不太理解,也不清楚原型链有什么用处。

2023-12-10 19:40:06 915

原创 如何二次封装一个Vue3组件库?

在封装vue组件库时一些基础的工程化方法。了解这些就可以开发基础的二次封装组件库了。

2023-12-03 17:48:34 1623

原创 简单理解Vue2的响应式原理

使用Vue作为前端开发技术栈的同学,在使用Vue时都会有一些好奇:为啥我们的响应式变量要在data中定义?Vue是如何监听到变化,实现响应式的?这次我们就来探究一下,Vue2的响应式原理。

2023-11-12 15:52:42 467

原创 圣杯布局/双飞翼布局/flex/grid等,实现CSS三栏自适应布局的几种方法

我们介绍几种实现自适应三栏布局的几种方法,包括使用flex,grid等方法实现,以及经典的圣杯布局/双飞翼布局等。这些布局的实现源码我放到了Github上面进行了开源

2023-11-05 23:45:24 415

原创 UVA-1602 网格动物 题解答案代码 算法竞赛入门经典第二版

使用dfs遍历所有情况,再去重即可。

2023-10-05 21:58:14 188

原创 超详细!手把手带你实现一个完整的Promise

本文首先介绍了JavaScript中异步编程的几种方式,再对Promise进行了简单介绍。然后从创建类开始,一步一步实现一个完整的Promise。我们实现的Promise不仅可以通过Promises/A+规范测试,并且提供了与ECMAScript同样的实用函数。

2023-10-04 15:25:30 849

原创 UVA-1374 旋转游戏 题解答案代码 算法竞赛入门经典第二版

但是如果想不打表完成题目,那么就需要使用思路中给出的各种优化方案,不然很容易超时。我一开始用set作为存储已存在的数字,但还是超时,后面改成用数组存储AC了。即使超时,因为数据量不大(1000个), 我们也可以直接打表直接返回结果。由于书上给了思路,所以做起来并不难。

2023-09-29 15:14:10 306

原创 UVA-1343 旋转游戏 题解答案代码 算法竞赛入门经典第二版

2. 使用一个long long类型的数字作为map的key,key表示这种数字在图形中分别的位置,value表示在第几步访问过。5. 乐观估价函数:在中心每个点的值不对的情况下,每个点都至少需要一次移动才能正确。上述的方法是结合使用的,一开始没想到估价函数,一直在剪枝策略中纠结,然后一直超时。(但是我想的剪枝方法不合理,使用了之后是错误的,在最后有给出)1. 对3种数字,每种数字递归遍历一次,这样每次只需要关注一种数字的变化,情况更少。虽然移动的可能性是无限的,但是最多的移动次数也就是十几次。

2023-09-17 02:22:24 324

原创 UVA-12325 宝箱 题解答案代码 算法竞赛入门经典第二版

根据书上的方法来做,是比较简单的题目。关键在于知道等体积时的枚举法。不过数据大小可能很大,虽然输入可以用int处理,但是 体积*价值 后,需要long long才存的下。

2023-09-09 21:20:48 234

原创 UVA-11212 编辑书稿 题解答案代码 算法竞赛入门经典第二版

那么广度优先搜索也可以剪枝,也可以有启发函数,而且是一样的启发函数。如果使用迭代加深搜索,搜到第n+1次时,会对前n次的计算结果进行重复搜索,效率不高。由于需要练习“迭代加深搜索”,因此我还是用这个方法做的,感兴趣的同学可以试一下广度优先搜索是否合适。我尝试使用了flag记录使用访问过的标志,但是发现这样效率更低。如果剪枝合适,不记录也是可以的。这道题目在书上的“迭代加深搜索”章节出现,即是采用迭代加深搜索的方法来做。数据粘贴的还原的方法我做的比较繁琐,但是比较容易理解,这个还可以优化。

2023-09-03 20:26:35 210

原创 谈一谈浏览器与Node.js中的JavaScript事件循环,宏任务与微任务机制

JavaScript是一个单线程非阻塞的脚本语言。这代表代码是执行在一个主线程上面的。但是JavaScript中有很多耗时的异步操作,例如AJAX,setTimeout等等;也有很多事件,例如用户触发的点击事件,鼠标事件等等。这些异步操作并不会阻塞我们代码的执行。可以看到,上述代码在浏览器中执行时,遇到setTimeout操作,并没有阻塞等待异步操作的结束再继续执行代码,而是先继续执行后面的代码。等异步操作结束后,浏览器再回来执行异步回调中的代码。

2023-08-21 15:29:08 1360

原创 UVA-1601 万圣节后的早晨 题解答案代码 算法竞赛入门经典第二版

由于最高只有3,因此我的全排列写的不怎么优雅,直接嵌套循环完成了。注意每个点可以动,也可以不动,因此我们要考虑只有一个点动,两个点动的情况。如果第一个点动了大现已经遍历过,这时候不能放入队列(因为在其他点不动的情况下,这个状态已经遍历过了)。在同一次中,B可以移动到A离开前的位置上,即如果A走了,B可以去A之前的位置。对每个状态遍历时,情况实际上有 3的全排列(值为6),以及每个点移动的可能四种位置: 3!当然因为墙的存在,因此并没有这么多。按照上面的方法做的话,耗时很久,我扣了点细节,最后终于压线AC。

2023-08-13 05:51:40 279

原创 UVA-10603 倒水问题 题解答案代码 算法竞赛入门经典第二版

使用广度优先搜索和优先队列,如果找到最小的点则退出。找不到就遍历所有的情况。

2023-08-06 17:50:21 221

原创 UVA-1354 天平难题 题解答案代码 算法竞赛入门经典第二版

2. 计算宽度时,左侧的宽度除了【左子树的宽度+绳子左侧的长度】之外,右子树的左子树也可能很宽,超过【左子树的宽度+绳子左侧的长度】。因此,要对【右子树的左子树-绳子右侧的长度】和【左子树的宽度+绳子左侧的长度】进行比较,看看谁更长。我这里每次把当前所有结点列出,然后遍历选取两个组合构成一个新结点,原来的结点剔除,新结点加入。最后只剩一个结点时,就得到二叉树的一种情况。由于数据量较少,所以我这里没有剪枝。注意选取两个结点后也对应着两种,A放在左边B放在右边 和 B放在左边A放在右边。

2023-07-30 05:16:01 360

原创 UVA-140 带宽 题解答案代码 算法竞赛入门经典第二版

注意虽然是8最多8个结点,但是 字母不一定是从A-G,有可能出现任意的字母比如Z。因此,按照字典序中间的部分字母是空出来的,没有这个结点。我们在遍历的时候,要记得去除这些结点。在新确定一个结点时,计算该节点与已经确定的节点的距离,如果大于之前已经算出的最小的组合的带宽,那这个组合的带宽一定更大,就不用往下继续计算了。其实输入给出的数据量并不大,最多8个结点,不剪枝的话也就是8!个组合,应该时间也够。把输入的这些结点进行一个全排列,然后找出带宽最少的组合。我的方法并不是最优解(还差的很远)

2023-07-29 23:59:08 365

原创 UVA-129 困难的串 题解答案代码 算法竞赛入门经典第二版

所以,对于当前我们要判断的长度为n的串,它的第1到n-1的串中肯定是没有包含连续子串的,此时加了第n个字符,那么我们就只需要判断包含最后这个字符的子串有没有发生重复的情况即可。如果是包含连续子串的序列,那么这个序列后面无论再加多少个字符,都是包含连续子串的,因此不需要再递归了。首先我们按照字典序生成序列,然后判断序列是否包含连续子串。判断第n个不包含连续子串的序列。

2023-07-29 17:40:56 402

原创 UVA-524 素数环 题解答案代码 算法竞赛入门经典第二版

由于判断最大不超过31,因此素数的判断直接手写枚举放到代码里即可。使用书上讲的递归枚举的时候回溯即可。

2023-07-23 01:34:10 337

原创 UVA-10976 分数拆分 题解答案代码 算法竞赛入门经典第二版

除了书上讲的y k,否则等式不可能成立。

2023-07-22 21:31:17 262

原创 UVA-11059 最大乘积 题解答案代码 算法竞赛入门经典第二版

数据量不大, 暴力即可。

2023-07-22 20:55:13 155

原创 UVA-725 除法 题解答案代码 算法竞赛入门经典第二版

【代码】UVA-725 除法 题解答案代码 算法竞赛入门经典第二版。

2023-07-22 19:47:25 135

原创 浏览器中Cookie的全面介绍

在Web前端开发时,我们经常会遇到一些浏览器存储相关的工具,例如Cookie。Cookie的英文本意是曲奇,但是在Web中,它被用作浏览器中存储的数据。Cookie都是name=value的结构,name和value都为字符串。

2023-07-16 19:04:29 1975 1

原创 UVA-12118 检查员的难题 题解答案代码 算法竞赛入门经典第二版

那么我们可以把他们组成多个连通图,每个连通图用上面的方法组成欧拉回路。最后再把这些联通图连接起来,就成了一整个欧拉道路。这时候的值为:每个连通图的原有道路数+每个联通图中我们增加的道路数+连通图的数量-1。也就是 原有的总道路数+每个联通图中我们增加的道路数+连通图的数量-1。2. 如果这些道路是联通的,但是不能组成欧拉道路。这时候就又组成了欧拉道路,这时候值为原有道路的数量+我们连接的数量。1. 如果这些道路是联通的,而且组成欧拉道路,那么这些道路可以一笔画,即道路的条数就是我们经过道路的次数。

2023-07-15 22:52:30 288

原创 UVA-215 电子表格计算器 题解答案代码 算法竞赛入门经典第二版

题目并不难,数据量也不大,一次数据最多是20*10是200个。因此即使最长的嵌套引用关系,也只有200层,我们使用暴力,循环200层,每次算出当前所有引用节点有值的结点,200次以后必然能得出结果。如果无结果的数据,就是产生循环的无解数据了。

2023-07-15 17:25:13 446

原创 UVA-810 筛子难题 题解答案代码 算法竞赛入门经典第二版

我的理解是,即使进入的时候方向不一致,只要进入后骰子面的位置一致了,那么它随后进入其他结点的判断条件是一致的,即应该不能重复进入,给与限制。这里注意,由于位置可以重复进入,因此只记录方向是不够的,还必须记录顺序,即第一次经过,第二次经过要进行顺序的区分。2. 根据骰子的两个相邻的面(例如题目给出的正面和顶面),可以确定整个骰子在桌面的每个面的位置。在确定了正面的情况下,一个骰子的顶面可能是正面的四个邻边的每一个。在骰子面关系中的顶面就是实际的顶面时,如果向右移动,此时顶面就是原来的左面。

2023-07-09 06:07:06 361

原创 UVA-10410 树重建 题解答案代码 算法竞赛入门经典第二版

因此,当找到结点a为bfs[b] = bfs[a] + 1,且a < b时,即有可能是兄弟结点,也有可能是父节点。我尝试过,如果把这种情况作为父节点,题目给出的样例可以通过,但是提交后是WA。2. 即使子树成功,更大的子树也可能失败,需要再重新按照别的方案构建更小的子树,且方式不同。我们从b开始往前找,找到b的父节点。此时在bfs中,bfs[a] > bfs[b]。此时在bfs中,bfs[b] = bfs[a] + 1,且a < b。设结点a的bfs,dfs位置分别为bfs[a],dfs[a]

2023-06-24 01:33:08 712

原创 UVA-246 10-20-30游戏 题解答案代码 算法竞赛入门经典第二版

不过,判断重复时,除了这些队列一致之外,还要有当前移动到的牌堆序号信息,才能保证是循环。但是目前没有判断这个就可以ac了。不清楚究竟是题目的数据中并没有包含这个这种场景,还是不需要保证牌堆序号信息就可以证明循环。一个难点在于判断出现循环。我参考了网上的做法,将8个双端队列作为一个vector,然后放入set中判断是否重复。(vector和deque都直接有判断方法,这样不用自己写了,非常非常方便)一道模拟题目,使用双端队列模拟手上的牌堆和桌面的7个牌堆即可。

2023-06-22 23:23:46 158

原创 UVA-127 纸牌游戏 题解答案代码 算法竞赛入门经典第二版

我使用了栈记录每个堆的数量。简单的模拟题目,暴力即可。

2023-06-22 19:39:15 272

原创 UVA-806 空间结构 题解答案代码 算法竞赛入门经典第二版

但是高位的值并不会处理,如果之前并没有初始化int,则高位的值是任意的,因此k的值并不等于char类型的值。我的方法是在通过图构建路径时,先递归到单个像素值,再一层一层的通过父级查看各个子级的颜色是否一致,不一致则子级的路径作为输出路径,一致则继续递归到上级处理。一道遍历四叉树的题目,在遍历的同时还要记住路径,做一些额外的操作。如果不是完全了解其中的细节,最好还是按照官方类型使用,否则会像这样出现一些隐藏的问题。这样使用在我本地没有问题,我使用uDebug测试,所有数据都能通过,但是去OJ提交却WA。

2023-06-18 18:25:26 142

原创 UVA-804 Petri网模拟 题解答案代码 算法竞赛入门经典第二版

不难的模拟题目,按照要求一次一次遍历执行即可。

2023-06-11 01:06:02 239

原创 UVA-12166 修改天平 题解答案代码 算法竞赛入门经典第二版

如果第四层的值为3,映射到根节点的值为24。可以看到,如果结点符合平衡关系,那么映射到根节点的值是相同的。看其他题解发现,我们只需要树中的某个结点值作为基准,其他的所有结点的值相对于它都是确定的,是*2或者/2的关系。例如第三层的一个结点值为2,那么第二层的所有节点值必须为4,第四层的结点值必须为1。因此我存储了每个结点值和它的层级,用一个二重循环遍历所有节点,第一层设置一个基准结点,第二层用每个节点与基准节点比较,看是否符合上述的关系。最后,相同的值数量最多的,就是改动最少的。

2023-06-10 22:41:39 98

原创 UVA-1600 巡逻机器人 题解答案代码 算法竞赛入门经典第二版

在普通BFS的基础之上记录下穿过障碍的状态即可。

2023-06-10 16:33:05 104

原创 什么情形下应该使用BFF?带你了解BFF的优势,即服务于前端的后端

BFF是一种Web架构,全名为Backends For Frontends,即为服务于前端的后端。。BFF一般指的是在前端与后端之间加增加一个中间层。为什么要在前端和后端之间增加一个BFF层呢?

2023-06-04 05:05:25 2887

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除