自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yucohny

aim at Microsoft

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

原创 欢迎访问「一名前端攻城师的个人修养」

链接:「一名前端攻城师的个人修养」欢迎来到「一名前端攻城师的个人修养」本网站旨在不断学习过程中,完善前端入门相关的知识笔记,同时展现笔者自己的一些笔试与面试经历。受到 Mock 描述的启发,命名为「前端攻城师」。关于本网站在学习过程中,自己一直有记录学习笔记。久之,笔记文件也有许多,再结合中学学习算法竞赛时写 题解 的习惯,便萌生出将这些笔记展示在网页上的想法,因而有了现在你所看到的界面。最初想要基于 Hexo 搭建,但是稍觉繁琐,许多配置以及主题样式更改又要再加学习。虽有学习之力,但无学习之心

2021-10-27 13:22:50 245 1

原创 关于Yucohny博客的说明【12.2再次更新】

①写题解。记录自己的解题过程和反思。②保存板子。数据结构,算法等。③整理题单。之后单独开一个文章。④记录matlab的部分学习。⑤记录java的部分学习。

2020-10-12 15:25:17 195 1

原创 关于博主的回归【Yucoh】

高一高二时博主使用该blog写oi的题解、总结等等,最终因实力不够遗憾落选。之后一直到现在也没有再使用过这个博客。这个博客之后会用来记录大学学习的一部分笔记。(比如今天开始记录同济版高数自学的笔记)以前的文章就不删了,当作对oi生涯的祭典。...

2020-08-12 18:51:36 190

原创 回顾一年的数模经历与一些准备比赛的建议

全文口水话叙述,烦请耐心阅读这篇叙述或许并不能教你怎么获得美赛O/F/M奖,也不能叫你怎么得到国赛国奖,但是希望从我的一些叙述中大家可以获得一些启发。文章目录快一年的数模经历2021美赛校内数统杯2021国赛我个人准备数模的一些建议序关于数学模型的学习关于数据搜集与应用关于编程方面关于论文的书写与排版关于队内交流与合作后序快一年的数模经历2021美赛大一没多久在决定退出ACM之后,当时的想法还是数模类的比赛自己一没兴趣二也不太会三也不知道这类比赛具体功用,可能多半也不会参加。最初hbh找我一.

2021-09-22 10:43:56 1156 3

原创 JavaScript中的逻辑与运算&&与逻辑或运算||中你不知道的操作

文章目录前言:翻阅红宝书前言:今天在看官方文档学习React框架时碰到下面这样的一个语句:大家关注我圈出来的部分:{unreadMessages.length > 0 && <h2> You have {unreadMessages.length} unread messages. </h2>}最初看到整个语句的时候还是一头雾水的状态,但是稍加分析可以猜测语句的含义是如果第一个表达式为true,那么就返回第二个操

2021-09-07 17:07:58 199

原创 git与github学习笔记【持续更新】

文章目录一、安装(略)二、linux/vim命令1.查看目录和文件2.创建/打开文件3.退出vim模式下文件4.不知道如何描述的其他vim命令:三、git命令1.初始化2.设置签名3.将文件加入缓存区与本地库4.查看当前目录的git版本一、安装(略)二、linux/vim命令1.查看目录和文件$ ll查看当前目录下的所有文件和文件夹(不包括隐藏文件)$ pwd查看当前目录$ ls -lA查看当前目录下的所有文件和文件夹(包括隐藏文件)2.创建/打开文件$ vim xxx如果存

2021-08-19 14:12:42 157

原创 AtCoder Beginner Contest 214 abc214_d D - Sum of Maximum Weights【最小生成树】【Kruskal】

题目链接  我们考虑最长的边会出现在何处。以这场边为中心,将这棵树分为两半,其中一半有xxx个点,另外一半有yyy个点,那么必然有x∗yx*yx∗y个点对的最短路,会经过这条最长边。于是我们考虑每条边作为最长边的状态。  于是考虑最小生成树,将边按照大小排序,对于每一条边加进来的时候,这条边已经是当前的最长边,于是我们考虑这条当前的最长边的两端的点的数量,然后我们用并查集维护即可。#include <map>#include <queue>#include <cmat

2021-08-15 10:27:18 188

原创 JavaScript 正则表达式小结

文章目录一、为什么需要正则表达式二、正则表达式的JavaScript语法1.正则表达式的语法2.test()函数3.|符号4.i后缀5.match函数6.g后缀7.通配符.8.[]字符集9.-表示字符区间10.^否定字符集11.+符号12.*符号13.^$开头结尾匹配14.元字符15.{}符号16.混合字符组集17.捕获组18.先行断言与后行断言19.replace()函数三、正则表达式的应用一、为什么需要正则表达式  正则表达式(Regular Expression)通常被用来检索、替换那些符合某个模

2021-08-10 12:19:24 142

原创 洛谷 P3044 [USACO12FEB]Relocation S【最短路】【全排列】

       考虑最短路径:start→k1→k2→k3→k4→k5→startstart\rightarrow k_1\rightarrow k_2\rightarrow k_3\rightarrow k_4\rightarrow k_5\rightarrow startstart→k1​→k2​→k3​→k4​→k5​→start       显然,对于确定的农

2021-07-07 20:17:23 103 1

原创 next_permutation与prev_permutation

当我们要求一个排列,从当前排列开始的所有全排列时,可以使用algorithm包的next_permutation与prev_permutation函数,具体的用法如下:ll num[n] = {...};do { cout << num[0] << " " << num[1] << " " << num[2] << ... << endl;}while (next_permutation(num, num +

2021-07-07 19:35:56 101

原创 [SDOI2008] 仪仗队【欧拉函数】

        题目传送门        首先我们对矩阵进行重新编排,以n=5n=5n=5为例(0,4)  (1,4)  (2,4)  (3,4)  (4,4)(0,3)  (1,3)  (2,3)  (3,

2021-07-04 23:28:12 93

原创 最长上升子序列LIS的应用

文章目录一、最长上升子序列1.暴力DP2.优化二、LIS的应用1.LIS的应用2.应用加强一、最长上升子序列1.暴力DP考虑如下问题:给定长度为n\large nn的序列A={a1,a2,...,an}\large A=\{a_1,a_2,...,a_n\}A={a1​,a2​,...,an​}(稍加注意,此处的{}并不是集合符号,而是描述一种顺序序列)若存在序列满足∀A′⊂A\large \forall A'\subset A∀A′⊂A,∀ai,aj∈A′,s.t.  ai

2021-05-29 20:04:05 195 1

原创 JavaScript-this关键字的绑定

当我们执行回调函数的时候,this关键字容易改变指向。为了减少this指向的不确定性,我们通过call等方法对当前函数的this指向进行绑定,即让此函数的this始终指向相同对象。此处我们以Function.prototype.call()为例,apply()和bind()与下述类似我们设立对象obj,对象内存在两个key和对应value: {p1: 123, p2: 234}我们想要通过函数count调出obj内的p1,我们可以通过obj.p1来调用,也可以将count内部的this绑定在obj

2021-03-25 09:05:59 173

原创 JavaScript-模块的写法及放大模式【待补】

考虑模块内部属性和方法的私有性,即不让私有变量可以从外部读写,我们使用立即执行函数(IIFE)的写法来构建模块:举例给模块module定义_count属性和calc方法var module = (function() { var _count = 0; var calc = function(x) { return x << 1; }; return { _count: _count, calc: calc };})();当一个模块内容很大,或者想要给模块

2021-03-25 08:32:49 240

原创 JavaScript待补目录【动态更新】

以下内容均以阮一峰JS教程为本,疑惑解决后大部分直接删除不做更新1.比typeof更准确的数据类型判断方法2.var obj = Object.defineProperties({}, { p1: { value: 1, enumerable: true }, p2: { value: 2, enumerable: false }});defineProperties是个啥,这种对象定义方式我是没学到吗还是忘了...

2021-03-22 07:16:02 89

原创 JavaScript-比typeof更准确的数据类型判断方法【待补】

信息来源于:阮一峰JavaScript教程此条内容目前知识尚欠缺,待补

2021-03-22 07:00:00 125

原创 LeetCode 116 填充每个节点的下一个右侧节点指针【BFS】

单独把这道题提出来,不是因为这道题本身难度有多高,更多的是这道题是一道非常好的检验对树的相关知识和BFS的简单运用的题。class Solution {public: Node* connect(Node* root) { if(root == NULL) return root; queue<Node*> q; q.push(root); while(!q.empty()) { int

2021-03-08 20:25:28 145

原创 数据结构学习之树状数组

文章目录一、单点修改区间查询lowbit单点修改区间查询二、区间修改单点查询差分数组差分数组的构建差分数组的应用区间修改单点查询三、二维树状数组一、单点修改区间查询lowbitint lowbit(int x) {return x&(-x)}作用:取出十进制数x二进制表示中由最低位往最高位方向的第一个1如10的二进制为(1010)2(1010)_2(1010)2​取出由最低位往最高位方向的第一个1:(10)2(10)_2(10)2​即为数字2这个时候我们如果将原数x减去这个

2021-03-08 19:18:54 117

原创 LeetCode279 完全平方数【暴力DP】

fif_ifi​表示数字iii最小可以由fif_ifi​个完全平方数组成,构造转移方程:fi=min⁡{fi−k+1}f_i=\min\{f_{i-k}+1\}fi​=min{fi−k​+1}其中,kkk是完全平方数class Solution {public: static const int M = 1e2+5; static const int N = 1e4+5; static const int Inf = 1e9; int f[N]; int s[M]; inline in

2021-03-08 14:32:45 71

原创 LeetCode 787 K 站中转内最便宜的航班【暴力DP转移】

f(i,j)f(i,j)f(i,j)表示到达iii地时已经到达了第jjj个地方时的最短距离记i→i′i\rightarrow i'i→i′是某条边,于是存在转移方程:f(i′,j+1)=min⁡{f(i,j)+val}f(i',j+1)=\min\{f(i,j)+val\}f(i′,j+1)=min{f(i,j)+val}然后暴力枚举i,ji,ji,j即可注意几个小细节1.枚举到i,ji,ji,j时,若当前f(i,j)f(i,j)f(i,j)无穷大,也即始终没有枚举到这个情况,那就不需要继续沿着边

2021-03-04 11:09:17 136 1

原创 冒泡排序、快速排序多个排序算法的原理及比较

文章目录冒泡排序插入排序选择排序希尔排序计数排序基数排序桶排序堆排序归并排序快速排序此篇笔记用于记录各种排序算法的原理,不做具体的对比与更加深入的研究。注意:以下原理与举例均以按照从小到大排序说明。示例代码均以 洛谷1177 作为模板题,时间复杂度为 O(n2)O(n^2)O(n2) 的算法只能过第一个测试点,时间复杂度为 O(nlog⁡n)O(n\log n)O(nlogn) 的算法可以通过所有测试点。冒泡排序每一轮两两之间相互比较,将更大者移至右方,则每一轮结束,当前最大的数一定被移到了最

2021-03-03 13:58:27 209

原创 LeetCode 474 一和零【01双重背包】

01双重背包定义f(i,j,k)f(i,j,k)f(i,j,k)表示在考虑第111个至第iii个物品后,且使用不超过jjj个0和kkk个1的条件下,能够选取的子集的最大数目。枚举所有状态,转移情况无非就是选取当前字符串与否,转移方程:f(i,j,k)=max⁡(f(i−1,j,k),f(i−1,j−cnt[i][0],k−cnt[i][1]))f(i,j,k)=\max(f(i-1,j,k),f(i-1,j-cnt[i][0],k-cnt[i][1]))f(i,j,k)=max(f(i−1,j,k),

2021-03-02 15:03:22 123

原创 LeetCode 778 水位上升的泳池中游泳【并查集】

将每个坐标(xi,yi),xi、yi∈[0,n)(x_i,y_i),x_i、y_i\in[0,n)(xi​,yi​),xi​、yi​∈[0,n)看作一个点,计算每个坐标对应的id=xi∗n+yi+1id=x_i*n+y_i+1id=xi​∗n+yi​+1将每个坐标的高度值单独保存下来,记录最大高度(也即最长时间)maxsizemax_{size}maxsize​从零开始枚举到最大高度,用并查集实现将当前可淹没的点连通,在每一次新高度下合并后,查看起始点和终点是否处于同一集合,如果属于,当前高度即为最小时

2021-03-01 19:39:11 140

原创 LeetCode 684 冗余连接【并查集】

一棵树多了一条边,找出这条边。根据树的性质,连通无环无项的性质很容易发现:挨个输入树的每条边时,最开始这条边的两个端点一定是没有连通的,如果连通,则成环,那么这条边就是多余的那条边。class Solution {public: int f[1005]; void init() { for(int i = 1; i <= 1000; i++) f[i] = i; } int find(int x) { return f[x] == x ? x : f[x]=find(f

2021-02-22 18:07:55 75

原创 数据结构学习之并查集

由于博主并不是初次学习这些算法数据结构,甚至很多都是学了两三年的东西。因此这些学习笔记更倾向于复习笔记,并不总会有非常细致的讲解,更多的是记录一般的实现思路和一些题目的分析思路。文章目录一、基本操作1.初始化2.路径压缩3.合并4.求集合数量二、例题1.模板题:洛谷15512.模板题:LeetCode 5473.LeetCode 684一、基本操作1.初始化void init() { for(int i = 1; i < N; i++) f[i] = i;}2.路径压缩in.

2021-02-22 17:54:57 116

原创 数据结构学习之栈队列链表

文章目录一、链表1.单向链表2.双向链表二、队列三、栈一、链表1.单向链表单项链表应至少满足这样的功能:1.O(1)O(1)O(1)添加元素在链表末尾添加元素,移动tailtailtail指针,建立新节点,赋值。2.O(n)O(n)O(n)插入元素从链表头开始枚举,直到枚举到需要插入元素的位置。改变指针指向,插入元素。3.O(n)O(n)O(n)删除元素从链表头开始枚举,直到枚举到需要删除元素的位置。改变指针指向,删除元素。4.枚举所有元素从链表头开始枚举,直到末尾。另外注意,单向链

2021-02-22 10:25:06 223

原创 TOPSIS算法(优劣解距离法)的使用举例与matlab实现

文章目录一、算法的提出二、TOPSIS算法的一般步骤1.形成决策矩阵2.计算加权决策矩阵(1)指标正向化处理a.极大值指标正向化b.极小型指标极大正向化c.中间型指标极大正向化d.区间型指标极大正向化(2)指标标准化处理得到新矩阵(3)计算加权决策矩阵3.计算每个方案的优劣值(1)计算每个参数对应的最大最小值(2)计算每个方案距离最优最劣解的距离(3)计算每个方案的优劣值三、使用举例1.形成决策矩阵2.计算加权决策矩阵(1)指标正向化处理一、算法的提出 ​  C.L.Hwang和K.Yoon

2021-01-28 22:59:20 16953 6

原创 余弦距离与欧氏距离的关系与使用

文章目录1.欧式距离2.余弦距离3.余弦距离的提出及与欧氏距离的关系4.余弦距离与欧氏距离的使用1.欧式距离考虑nnn维空间内两点A(x1,x2,...,xn),B(y1,y2,...,yn)A(x_1,x_2,...,x_n),B(y_1,y_2,...,y_n)A(x1​,x2​,...,xn​),B(y1​,y2​,...,yn​),显然两点对应的向量为OA⃗=(x1,x2,...,xn),OB⃗=(y1,y2,...,yn)\vec{OA}=(x_1,x_2,...,x_n),\vec{OB}=

2021-01-25 19:12:35 964

原创 层次分析法AHP的简单使用举例与matlab实现

#文中图片均来源于博主本人,本文转发转载请私信博主层次分析法:Analytic Hierarchy Process(AHP)文章目录一、致谢二、运用层次分析法的一般步骤三、简单举例进行应用一、致谢本文得益于王莲芬老师、许树柏老师著作《层次分析法引论》(中国人民大学出版社1990年6月第1版)良多,在此致谢。二、运用层次分析法的一般步骤1.分析系统中各因素之间的关系,建立系统更多解题层次结构首先把问题条理化、层次化,构造出一个层次分析的结构模型。在这个结果模型下,复杂问题被分解为可以被称之

2021-01-25 06:12:50 2508

原创 主成分分析法PCA的简单使用举例与matlab实现

文章目录一、运用主成分分析法的一般步骤二、简单举例的计算三、简单举例的matlab实现一、运用主成分分析法的一般步骤1.将同类型数据中心化:cij=bij−bi‾c_{ij}=b_{ij}-\overline{b_i}cij​=bij​−bi​​2.将nnn个类型的每个类型中心化后的参数数据列为向量a1⃗=(c11,c12,...,c1m),...,an⃗=(cn1,cn2,...,cnm)\vec{a_1}=(c_{11},c_{12},...,c_{1m}),...,\vec{a_n}=(c_

2021-01-14 10:49:56 628

原创 Python之format使用介绍

文章目录介绍位置映射设置参数介绍   Python2.6开始,新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 :位置映射list=[1,2,3]print("{},{}".format("1","2",list))print("{0},{1},{2}".format("1","2",list))print("{0},{1},{1},{2}".format("1","2",list))>>> 1,2&gt

2020-12-14 17:07:16 464

原创 Python复习笔记

文章目录1 前言2 包含3 复习笔记4 其他1 前言辅助行  CQU大一上学期自行选择模块1或2来学习专业课,其中选择模块1即学习Python,2即学习C。博主自身考虑到有C++的基础,所以选择了Python的学习,也即模块1。  但是对于Python这门语言,自己本身并没有多大的兴趣,并且自认为之后的学习与实践中用到Python并不多(结合博主之后的学习情况,更多会用到C++、Java),因此并未多么用心去学习Python这门语言(勿喷),只是为了考试。平时上课并没有怎么学Python,只是跟随布

2020-12-07 16:55:50 1236

原创 琴生不等式与其他(Jensen Inequation)【粗】

证明琴生不等式:设f(x)f(x)f(x)在开区间(a,b)(a,b)(a,b)上为凸函数,且对于λ1,λ2,...,λnλ_1,λ_2,...,λ_nλ1​,λ2​,...,λn​这nnn个正实数,满足∑i=1nλi=1\sum_{i=1}^nλ_i=1∑i=1n​λi​=1,且x1,x2,...,xnx_1,x_2,...,x_nx1​,x2​,...,xn​是区间(a,b)(a,b)(a,b)上任意nnn个点求证:f(∑i=1nλixi)≤∑i=1nλif(xi)f(\sum_{i=1}^nλ_

2020-11-24 23:05:28 254

原创 UVa 10288 Coupons【期望】【模拟】

Coupons很简单的题,因为好久没写题解了就水一篇假设当前已有kkk个不同物品,那么获得另一个不同的物品概率为n−kn\frac{n-k}{n}nn−k​,那么获得下一个不同的物品的期望次数是nn−k\frac{n}{n-k}n−kn​所以答案=nn+nn−1+...+n1=n∑i=1n1n=\frac{n}{n}+\frac{n}{n-1}+...+\frac{n}{1}=n\sum^{n}_{i=1}\frac{1}{n}=nn​+n−1n​+...+1n​=n∑i=1n​n1​,最后答案以带分

2020-11-04 00:43:39 143

原创 2020ICPC·小米 网络选拔赛第一场 B题题解【建图求最短路】

Intelligent Robot题意:平面上(0,0)(0,0)(0,0)到(n,m)(n,m)(n,m)上有kkk堵墙,告诉你每堵墙的起点和终点的坐标。现在要你从给定起点走到给定终点,不能跨越墙走,求最短路。思考最短路径策略,一定有这么一个想法:最短路径一定是从起点到某堵墙的一个端点,然后到同一堵墙的另一个端点或者到另外的墙的另一个端点,一直朝着墙的端点走,最后走到终点,这样一定是最短的。基于这样的想法,我们把第iii堵墙的两个端点编号为2∗i−1,2∗i2*i-1,2*i2∗i−1,2∗i,起点

2020-10-26 18:01:55 205

原创 MATLAB学习笔记(五)

向量与矩阵的基本运算一、向量的基本运算1.创建向量:格式要求:向量元素用[]括起来,元素之间可以用空格、逗号或者分号分隔。其中,空格和逗号分隔生成行向量,用分号分隔生成列向量2.向量的转置若xxx表示向量,则输入x′x'x′即表示向量xxx的转置x=[1,1,1;2,2,2;3,3,3]x'3.向量的其他函数向量运算中的常用函数如表:常用函数应用举例:...

2020-10-26 14:22:26 504

原创 MATLAB学习笔记(四)

MATLAB学习笔记(四)一、绘制二维图像代码格式:x=start:点与点之间的间隔:endy=f(x)plot(x,y,'s')注:①start、end表示xxx轴的起始点与结束点②设置点与点之间的间隔指的是点图像上每个点与相邻点的间隔,即曲线图像无影响③在乘除次方前需要打一个点.④plot命令中的′s′'s'′s′表示曲线颜色与绘图方式常用颜色与绘图方式如下表格:例:绘制y=2xx3+x2y=\frac{2x}{x^3+x^2}y=x3+x22x​在区间[−10,10][

2020-10-19 17:03:54 403

原创 MATLAB学习笔记(三)

MATLAB学习笔记(三)计算极限(套用下面模板)步骤:1.定义变量y,xy,xy,x2.写出y=f(x)y=f(x)y=f(x)表达式3.计算极限计算极限格式:limit(函数名,变量名,趋于某值)limit(函数名,变量名,趋于某值)limit(函数名,变量名,趋于某值)例:计算lim⁡x→0cos⁡x−cos⁡3xx2\displaystyle\lim_{x\rightarrow0}\frac{\cos x-\cos 3x}{x^2}x→0lim​x2cosx−cos3x​代码

2020-10-18 15:52:21 171

原创 MATLAB学习笔记(二)

一、查询操作help命令查询已知命令,帮助查询特殊命令/函数的用法help 命令名如:lookfor命令用来寻找位置命令,找到对应的命令之后,即可用help命令来找出其用法lookfor 命令名比如,我们lookfor sqrt查询到了一个叫做gsqrt的命令,但是我们不知道怎么用,这个时候我们再help一下help gsqrt二、矩阵向量的输入矩阵:输入矩阵:[123](1)\left[\begin{matrix}1&2&3\\\end{matrix

2020-10-17 11:38:22 547

原创 MATLAB学习笔记(一)

一、调出命令历史记录Command History1.主界面中找到布局2.布局中找到命令历史记录并选择停靠3.可以拖动Command History窗口选择自己喜欢的位置4.右键窗口可以选择清除历史记录二、数学函数的使用数学上的数学函数如三角函数对数函数在matlab中可以直接使用(注意:默认保留四位小数)求x\sqrt xx​:sqrt(x)求ln⁡x、log⁡2x、log⁡10x\ln x、\log_2x、\log_{10}xlnx、log2​x、log10​x(想要求以任

2020-10-14 00:26:51 2113

空空如也

空空如也

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

TA关注的人

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