自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

二营长的意大利炮友

主要是算法

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

原创 4.1 Vue中watch函数的实现原理

例如对post的实现,这表示回调函数会在dom更新之后执行,实现方法是将回调函数放入微任务队列中,这里使用的是。函数,获取变化前后的值,通过调度器调度回调函数的执行时机等。首先要实现的是创建时就立即执行的标记,还是正常使用前面章节中提到的调度器,加入一个。所以我们在处理的时候需要将传入的两种情况兼容一下,其实也很简单,我们可以统一使用。作为侦听属性,他的作用为侦听一个数据的变化,若数据变化则触发相应的回调函数。第二种调度是在Vue3中新增的,设置回调函数的执行时机,一般通过。中的回调函数执行,这其实就是。

2023-06-08 16:24:29 1940

原创 4.0 Vue.js中的computed的设计

并不是响应式数据还是懒执行的,所以也就不会和外层的副作用函数产生联系了,这里解决的方案就是直接手动将计算属性的结果和外层副作用函数联系起来。作为计算属性其作用是描述响应式数据的复杂逻辑计算,当所依赖的响应式数据发生改变时计算属性会重新计算,更新逻辑计算的结果。的值则不会每次都重新计算了,但是这样写有一个非常明显的问题就是我们所依赖的响应式的值改变的时候不会重新计算,所以我们。有个体现计算属性特点的便是比较计算属性和方法的区别,比如我们需要计算两个响应式数据的和。嵌套的问题,当内层的响应式数据只和。

2023-06-07 20:25:16 565

原创 3.3 具有调度功能的响应式设计

从上述的章节中我们设计了一套响应式系统,但是这个系统有个问题是副作用函数是不可控的,即我们无法控制副作用函数的执行时机和执行次数。其实这些输出结果中的2、3都是过渡状态,是没必要执行的,这些中间状态的控制用调度器是很容易实现的,在Vue中使用的是一个副作用函数的任务执行队列(其实这只是一个简单的调度器,主要是为了展示调度器的功能,即调整执行时机和节省资源,而Vue的完整调度器更加的完善和复杂。模拟),将要执行的副作用函数放入任务队列,但是任务队列的执行是在微任务队列中,这样就如上述所说的调整了执行的顺序。

2023-06-07 10:01:22 438

原创 3.2 继续完善的Vue.js响应式系统

内的值给取出来,放在新的一个Set中,然后遍历新的Set,这样如果有新加入的值会放入。的执行也在递归过程中逐步指向内层的副作用函数,但是当递归出来的时候,中判断一下,就根据这个死递归的过程,在执行追踪的时候查看副作用函数。,则将副作用函数又插回了副作用函数的执行队列中,效果相当于。会再次执行外层的effect函数,但是实际的结果是什么呢。其实问题就出在trigger函数执行的过程中,这里对于。函数执行输出的前两句是符合预期的,但是第二次修改。的改变导致了副作用函数执行,在执行的过程中有。

2023-06-06 10:25:42 264

原创 3.1 一个稍微完善的Vue.js响应式系统

解决Vue.js响应式系统设计中的副作用函数注册,关于桶的设计,分支切换等问题。

2023-05-08 17:33:44 719

原创 3.0 响应式系统的设计与实现

使用Proxy代理和副作用函数实现一个最基本的响应式系统。

2023-05-07 10:06:05 493

原创 2.0 Vue框架设计的核心要素

本章主要讲解,一个好的框架在构建的时候,需要考虑到的要素,包含报错信息反馈、警告信息反馈、减少打包体积、良好的输出、特性开关(兼容)等。

2023-05-05 15:36:54 685

原创 1.0 Vue的编译和运行

Vue的编译和运行的流程解析,和Vue的编程范式比较。

2023-05-04 16:40:44 1026

原创 C/C++函数可变参量传递

函数的可变参量传递是什么呢?就是你设定的函数在传入参数的时候你不知道传入参数的数量和顺序。为了解决这个问题一般用两种办法,第一个就是函数重载,第二个就是使用可变参量。第一个方法也是使用最多的办法,但是第一个方法有一个问题就是只有在解决传入参量变化不是很大的时候才行,要是传入的参量从几个到几百个不等,那么要使用函数重载是不现实的。函数可变参量的传递其实学过C语言的都用过,最常见的就是printf函...

2020-04-06 09:13:51 705

原创 #ifdef、#ifndef、#endif功能及其应用

1、功能首先要知道#ifdef的功能,ifdef一看就是if define的缩写,其实就是一个条件判断语句,这个语句必须和#endif组合使用。看以下例句:#include <iostream>using namespace std;#define num 123int main() {#ifdef num //如果宏定义了num,则执行#ifdef和#endif之间的...

2020-03-29 18:01:33 681 2

原创 ubuntu服务器的软件源

1、什么是软件源?源,在Ubuntu下,它相当于软件库,需要什么软件,只要记得正确的软件名就可以用命令安装: sudo apt-get install 软件名。当你在使用了这个安装命令的时候,apt包管理工具就会从我们系统中的源列表文件中去访问列表中记录的软件源网址,从网站上找到和我们输入的软件名匹配的软件,然后将这个软件下载下来安装上。2、ubunut软件源的分类一般可以将ubuntu...

2020-02-16 17:58:20 1077 2

原创 2019牛客国庆集训派对day1 F-4 Buttons

题目链接:https://ac.nowcoder.com/acm/contest/1099/F解题心得:以(0,0)(0,0)(0,0)为原点将整个图划分成四个象限,如果单单看一个象限(不包含坐标轴)很容易找到规律,可以直接将四个象限的数量找到然后再计算在坐标轴上的点就行了。#include <bits/stdc++.h>using namespace std;typede...

2019-10-09 16:13:11 272

原创 2019牛客国庆集训派对day1 I-2019

题目链接:https://ac.nowcoder.com/acm/contest/1099/I解题心得:就是一个树dpdpdp,从叶子节点到根节点一步一步转移,用dp[i][j]dp[i][j]dp[i][j]表示以iii为起点向叶子节点寻找路径能够组成路径和为jjj的方案数有多少,这样在父节点找了一个子节点之后将子节点的方案数加到父节点上然后继续找下一个子节点。#include <...

2019-10-09 16:08:40 241

原创 2019牛客国庆集训派对day1 E-Numbers

题目链接:https://ac.nowcoder.com/acm/contest/1099/E解题心得:其实很对限制条件题目中都已经给出了,给出了所有的限制条件之后会发现如果暴搜复杂度也不会特别的大。#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll maxn = 2e4+10...

2019-10-09 16:04:06 189

原创 2019牛客国庆集训派对day1 B-组合数

题目链接:https://ac.nowcoder.com/acm/contest/1099/B解题心得:其实这个题与三个数有关nnn,kkk,n−kn-kn−k。当n−max(n,n−k)n-max(n,n-k)n−max(n,n−k)数字大于606060个的时候得到的一个数肯定非常大,这个时候直接输出101810^{18}1018的答案,否则可以预见剩下的数字很少,那么就将剩下数字分子分母约分...

2019-10-09 16:01:13 238

原创 2018 German Collegiate Programming Contest (GCPC 18) M - Mountaineers(启发式合并)

题目链接:https://codeforces.com/gym/102021/attachments题意:现在有个地图由n∗mn*mn∗m个方格组成,每个方格上有个数字,代表在这个点的海拔高度,现在qqq次询问,每次询问给出两个点,你需要找到一条路径可以由一个点走到另一个点并且要求这条路径上的最高海拔要尽可能的小,输出每次询问的最小的最大高度。从一个点只能走到这个点的四个方向。解题心得:这个题...

2019-10-08 18:10:48 262

原创 2018 German Collegiate Programming Contest (GCPC 18) I - It's Time for a Montage

题目链接:https://codeforces.com/gym/102021/attachments题意:现在有nnn个英雄,nnn个怪兽,每个怪兽和英雄有个战斗力值,英雄和怪兽的重要程度按照顺序给出,当重要英雄战斗力大于同等重要的怪兽的时候英雄团队胜利,当战斗力相同时看下一个重要程度的英雄和怪兽,当所有英雄和怪兽战斗力都一一对等时英雄团队胜利,英雄可以修炼,每多一天所有英雄战斗力加一,现在问最...

2019-10-08 17:57:16 157

原创 2018 German Collegiate Programming Contest (GCPC 18) H - Hyper Illuminati

题目链接:https://codeforces.com/gym/102021/attachments题意:给出一个mmm,你需要找到两个数nnn,sss,满足∑i=1sin−1==m\sum_{i=1}^{s}i^{n-1} ==m∑i=1s​in−1==m。解题心得:仔细观察枚举的数字不可能很大,直接暴力就可以了#include<bits/stdc++.h>using...

2019-10-07 15:30:32 413

原创 2018 German Collegiate Programming Contest (GCPC 18) F - Fighting Monsters

题目链接:https://codeforces.com/gym/102021/attachments题意:假设现在有两只怪兽xxx和yyy,生命力分别是aaa和bbb,两只怪兽轮流进攻,生命力小于等于000时死亡,进攻方生命力不变,例如当xxx进攻yyy的时候,xxx生命力不变还是aaa,但是yyy的生命力变成b−ab-ab−a,然后yyy进攻xxx,该轮结束后双方生命力变成了a−(b−a)a-...

2019-10-06 15:58:25 251

原创 2018 German Collegiate Programming Contest (GCPC 18) D - Down the Pyramid

题目链接:https://codeforces.com/gym/102021/attachments题意:假设有一个非负的长度为nnn的数列AAA,那么可以得到一个数列BBB,Bi=Ai+Ai+1B_{i} = A_{i}+A_{i+1}Bi​=Ai​+Ai+1​。现在题目给出数列BBB,问数列AAA的组合方式有多少种。解题心得:设数列AAA的第一项为xxx,那么有x>=0x>=0...

2019-10-06 15:45:44 336

原创 2018 German Collegiate Programming Contest (GCPC 18) C - Coolest Ski Route

题目链接:https://codeforces.com/gym/102021/attachments题意:给你带非负边权的DAGDAGDAG图,你需要得到最长路。解题心得:就是一个DAGDAGDAG求最长路的简单dpdpdp。#include<bits/stdc++.h>using namespace std;const int maxn = 1010;int n, ...

2019-10-06 15:36:45 179

原创 2018 German Collegiate Programming Contest (GCPC 18) B - Battle Royale

题目链接:https://codeforces.com/gym/102021/attachments题意:现在有两个圆,一个小圆包含在一个大圆里面,现在大圆里面小圆外面有两个点,此时一个人要从一个点到另一个点去,并且不能走出大圆不能走进小圆,问最短的路径值。解题心得:首先要知道如果两点可以不被小圆阻挡直接走一条直线那么就直接走过去,否则就需要用两点对圆做切线,这个时候两人最短的路径就是两人...

2019-10-06 15:17:33 194

原创 2018 German Collegiate Programming Contest (GCPC 18) A-Attack on Alpha-Zet

题目链接:https://codeforces.com/gym/102021/attachments题意:现在有一个迷宫大小为n∗mn*mn∗m,你有qqq个点,分别标号为[1,q][1,q][1,q],你需要按照顺序在迷宫中按顺序经过这qqq个点,并且要求路径和最短。解题心得:题目中有一句非常关键的话就是在迷宫中任意两点有且仅有一条路径。也就是说可以直接将这个迷宫抽象成一棵树,然后qqq...

2019-10-06 15:06:51 329

原创 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest:Gym 101667L

题目链接:https://codeforces.com/gym/101667/attachments题意:有ppp个人,他们各自在不同的图里面,每个图都有一个终点,现在他们都需要从111点同时到达终点,每条边有个边权,每个点也有一个权值,当某个人在该点选择不走时花费为该点点权,问所有人总的最少花费是多少。解题心得:花费的时间最坏可能是n3n^{3}n3天,在一个点不动可以看成自环,这样可以直接...

2019-10-02 20:02:50 171

原创 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest:Gym 101667K

题目链接:https://codeforces.com/gym/101667/attachments题意:现在让你从原点开始走,每次给你转向的方向你需要安排每一次转向要走多远并且让整个路径没有交点。解题心得:螺旋走位法,记录上下左右能够到达的最远值,如果再次走该方向只需要比这个方向最远值多走一步就行了,这样不会有交点。#include <bits/stdc++.h>usin...

2019-10-02 19:46:01 258

原创 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest:Gym 101667I

题目链接:https://codeforces.com/gym/101667/attachments题意:现在有一个数列,你需要将前kkk项去除之后剩下的数列形成一个循环数组周期为ppp,平且要求k+pk+pk+p最小,当k+pk+pk+p相等时ppp最小。解题心得:找循环节就是kmpkmpkmp的应用,只不过这个题需要去除前kkk个,这就可以将数列先翻转,然后再求一个kmpkmpkmp,直接...

2019-10-02 19:40:39 191

原创 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest:Gym 101667D

题目链接:https://codeforces.com/gym/101667/attachments解题心得:无论第一次给的数字有多大第一次计算之后都会变得很小,然后直接暴力找就行了。#include <bits/stdc++.h>using namespace std;#define fi first#define se secondtypedef long lon...

2019-10-02 14:00:29 157

原创 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest:Gym 101667C

题目链接:https://codeforces.com/gym/101667/attachments题意:现在有一个无向图,一个人要可以随便找一个起点然后选择一条路径去旅游,要求路径从起点开始之后每个点度都要比上一个点的度大,问路径的长度最长是多少。解题心得:其实按照边的选择规则只有当前点的度小于相邻点的度时候才能建立一条边,这样就可以直接把整个图重新建立成一个DAGDAGDAG,然后按照拓扑...

2019-10-02 13:56:31 203

原创 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest:Gym 101667B

题目链接:https://codeforces.com/gym/101667/attachments题意:有一个4∗44*44∗4的棋盘下三子棋,下棋规则是黑白两方轮流选择某一列,在这一列按行从小到大开始找,找到第一个没有被占据的位置然后将棋子放下,当出现三子连环的时候棋局结束。现在已知黑棋先手,并且知道第一手下在了第xxx列。问当白棋下在(a,b)(a,b)(a,b)位置并且这个时候胜利的情况...

2019-10-02 13:47:27 335

原创 2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17):H. Hidden Hierarchy

题目链接: https://codeforces.com/gym/101620题意:有一个文件夹系统,现在给你n个文件的绝对路径,你需要按字典序输出所有占用内存大于k的文件夹,如果文件夹下面还有文件夹,但是没有展示则在前方加上符号‘+’,如果该文件夹下面只有文件则前方用空格占位,否则前方输出符号‘-’。其实不懂的可以直接参照windows的系统文件显示。解题心得:首先要知道其实文件的储存就...

2019-09-25 19:36:49 217

原创 HDU:6684-Rikka with Game

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6684解题心得:因为是字典序,那么第一个字符肯定是最重要的,当它发生变化时无论之后的字符怎么变影响都可以忽略。所以这个游戏只会玩一轮。其次就是如果第一个字符是yyy,这个时候第一个人肯定都不会去动这个字符,谁动谁输,然后是看yyy之后的第一个字符。如果yyy之后的字符是zzz,那么这个zzz会...

2019-09-25 17:12:31 150

原创 HDU:6682-Rikka with Mista

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6682题意:现在有n个数,你可以任意组合,问在所有的组合中,对每个组合求和,那么总共含有多少个数字4。解题心得:看到nnn最大为404040,第一个反应肯定就是折半搜索,首先将所有的nnn个数均分成两半,并且分别将每一半的所有组合求和暴力枚举出来,设存放在ve1ve1ve1和ve2ve2ve2中...

2019-09-25 16:38:15 120

原创 2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17):G. Gambling Guide(最短路dp)

题目链接:https://codeforces.com/gym/101620题意:你需要乘车从点111去点nnn,你在每个点花费一块钱可以买车票,售票机会随机给你吐出一个相邻车站的车票,你可选择坐车走也可以选择丢弃这张票再继续买。你知道这个图的形状,那么你预测你最少花费多少钱可以到达nnn点。解题心得:dpdpdp真的好难啊,就这个题来说设dp[i]dp[i]dp[i]为从iii点到达nn...

2019-09-20 20:33:29 283

原创 2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17):J. Justified Jungle

题目链接:https://codeforces.com/gym/101620题意:给你一棵树,你需要删去k条边,删去边之后拆分出的多棵树需要每棵树的节点数目相同。解题心得:其实就是找一下规律,找不出来画一画就看出规律了,直接类似艾氏筛法复杂度的枚举。直接上代码吧。#include <bits/stdc++.h>using namespace std;const int m...

2019-09-20 20:00:52 356

原创 2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17):A. Assignment Algorithm

题目链接:https://codeforces.com/gym/101620题意:现在你需要安排一个飞机的座位,飞机座位共有nnn排可以坐,第111排前面和第n/2n/2n/2排后面以及最后一排后面是安全通道,一排有999个座位ABC.DEF.GHIABC.DEF.GHIABC.DEF.GHI。在安全通道后面第一排的位置先进行安排,当安全通道后面第一排位置都安排满了,每一排位置空得越多的越先安排...

2019-09-20 19:22:30 444

原创 HDU:6681-Rikka with Cake

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6681题意:现在有个矩形的蛋糕,并在蛋糕上建立笛卡尔坐标系,原点在左下角,一个人在蛋糕上切了kkk刀,每一刀可以看成一条射线,射线起点在(x,y)(x,y)(x,y)向四个方向射出,问所有射线最后将蛋糕切成了多少个部分。数据保证没有射线沿着边界并且没有两条射线在同一条直线上。解题心得:由于数据已经排...

2019-09-18 20:40:56 112

原创 HDU:6680-Rikka with Quicksort(毒瘤题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6680解题心得:这个题是真的毒瘤。作为一个对数学公式一点也不敏感,不知道往什么方向化的人来说只能看着这个题蒙蔽。看着大佬好不容易推出公式了还要分块来卡时间,我枯了。至于解题已经右大佬写的很好了传送:大佬的题解。#include <bits/stdc++.h>using namesp...

2019-09-18 20:09:17 211

原创 HDU:6701-Make Rounddog Happy (启发式分治)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6701解题心得:这个题首先要明白是用分治去解决,也就是说如果区间[l,r][l,r][l,r]之间最大值在位置pospospos,那么可以枚举当左端点为i(l&lt;=i&lt;=pos)i(l&lt;=i&lt;=pos)i(l<=i<=pos)得到包...

2019-09-17 11:06:44 184

原创 HDU:6698-Coins(贪心+线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6698题意:现在有nnn组数字,每组数字里面有两个数aaa,bbb,你需要从这n组数中取k(1&lt;=k&lt;=2∗n)k(1&lt;=k&lt;=2*n)k(1<=k<=2∗n)个数,如果你要从一组数中取数,你只有三种取法直接取a在取完a的情况下...

2019-09-11 17:05:49 411 1

原创 HDU:6697-Closest Pair of Segments(空间内的最近线段)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6697题意:现在在平面上有nnn条线段,并且定义线段xxx和线段yyy的最短距离为在xxx上任取一点和yyy上任取一点,最小的两点之间距离为两线段的最短距离。解题心得:先分析复杂度,nnn的范围是100001000010000,如果直接n2n^2n2暴力加上TTT组数据肯定会超时。这个时候可以按...

2019-09-06 17:26:17 332 2

空空如也

空空如也

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

TA关注的人

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