github pages 使用自定义域名
暂定 未完成
https://www.daxiaju.net/2023/11/30/github-pages-custom-domain/
hexo引用站内文章
暂定: 文章未完成
看 MacOS 上配置 Hexo 教程
这里可以参考站内文章:使用Git实现hexo多端同步
https://github.com/iissnan/hexo-theme-next/issues/978#issuecomment-481884985
MacOS上配置Hexo教程
¶前言
最近买了台Macbook,之前一直使用的都是Win机子,换到mac后又是一个重新学习的过程。
当然拿到电脑后第一件事就是把我的博客同步到mac上来,然而由于mac和win的环境配置有一定区别,也是折腾了一段时间才搞好
今天终于是把环境配置好了,遂记录一篇如何在macos上配置hexo并多端同步。
¶环境配置
macos与win的一大区别就是环境配置工作,我前几次失败也都是倒在环境配置这一步,下面是操作步骤。
主要教程也是参考网上别人的方法:mac环境下使用hexo搭建个人博客
本文也记录一些本人安装时遇到的一些问题和解决方法。
¶准备工作
¶安装 Homebrew
一开始我是并不想使用Homebrew包管理器的,觉得能直接装就直接装了,多装个东西反而麻烦。但是在查找了多方教程后发现大多数人在mac上使用的都是Homebrew,所以最后还是选择了使用这个包管理器。
如果网络环境良好(不在中国大陆),可以略过设置环境变量的步骤并直接使用正常的安装脚本:
1/bin/bash -c "$(curl -fsSL https://raw.githubusercontent. ...
c++ string
¶字符串和字符数组
¶cin.getline()与getline()的区别
cin.getline要使用字符数组做参数,getline要使用字符串做参数
cin.getline(字符数组,读取的长度);
getline(cin,字符串名)
12345678 char name[20]; string s;cin.getline(name,20); //OK getline(cin,name); //ERROR cin.getline(s,20); //ERROR getline(cin,s); //OK
¶string 与 stringstream
参考资料:
string和stringstream用法
C++ string类的用法整理
¶string基本用法
¶赋值
可以用 char* 类型的变量、常量,以及 char 类型的变量、常量对 string 对象进行赋值
123string s1;s1 = "hello";s2 = 'K';
¶拼接
我们一般常用+和+=运算符对 string ...
二分查找
¶二分查找算法概述
二分查找很简单吗?或许二分查找的思想是直观的,但是细节才是程序的核心。看看 Knuth 大佬(发明 KMP 算法的那位)怎么说的:
Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky…
¶二分代码的框架
12345678910111213141516int binarySearch(int[] nums,int target){ int left = 0; int right = ...; // 一般是数组的长度 while(...){ int mid = (left + right) / 2; //普通写法 //int mid = left + (right - left) / 2; // 防止溢出 if(nums[mid] == target){ . ...
前缀和与差分数组
¶前缀和算法
前缀和主要适用的场景是原始数组不会被修改的情况下,频繁查询某个区间的累加和。
¶前缀和核心代码
1234567int nums[110],prefix[110];int n;cin>>n;for(int i=1;i<=100;i++){ cin>>nums[i]; prefix[i] = prefix[i-1] + nums[i];}
前缀和数组prefix[i] 就代表着 nums[0..i] 所有元素的累加和,如果我们想求区间 nums[i..j] 的累加和,只要计算 prefix[j] - prefix[i-1] 即可,而不需要遍历整个区间求和。
¶后缀和
后缀和和前缀和类似,只是建立数组的过程不太一样
123456for(int i=1;i<=n;i++){ cin>>nums[i];}for(int i=n;i>=1;i--){ sum[i] = sum[i+1] + nums[i];}
这里的sum数组sum[i]的含义就是 ...
使用Git实现hexo多端同步
¶前言
最近需要用两台电脑来更新博客,但是用U盘来回拷贝太麻烦而且有点捞,使用开始尝试使用git和github来实现hexo的多端同步
Hexo 本地和部署到Git page上的文件是不同的东西
在执行hexo g命令后,会在public目录下生成网页的静态文件,我们用hexo d上传的文件其实就是public目录下的这些静态文件。如果执行hexo clean,那么public文件夹就会消失。实现多端同步,只要让每台电脑上都有最新的资源文件就行了。
主要参考了以下文章:
利用Github实现hexo多端同步
Hexo在多台电脑上提交和更新
¶hexo同步原理
hexo博客目录结构说明
一般而言hexo的目录结构包含下面内容(shell脚本不属于hexo的目录结构)
文件夹
说明
是否需要上传github
node_modules
hexo需要的模块,就是一些基础的npm安装模块,比如一些美化插件,在执行npm install的时候会重新生成
不需要
themes
主题文件
需要
public
hexo g命令执行后生成的静态页面文件
不需要
packag ...
高精度算法
¶高精度问题
高精度主要是解决处理大整数时的问题,这里的整数范围要超过longlong。
高精度问题的核心就是使用字符串去模拟加法、减法、乘法、除法运算
¶高精度加法
¶基本
使用三个数组a[],b[],c[]存储
模拟加法竖式:累加 进位 留位
累加: c[i] += a[i] + b[i] ——>必须要累加之前的进位,使用 += //累加进位和对应位置的数字
进位:c[i+1] = c[i] / 10;
留位:c[i] %= 10;
Q1:假设正整数A的长度为n,正整数B的长度为m,那么A+B的长度最大为多少?最小为多少?
A1: 长度最大:max(n,m)+1 长度最小:max(n,m)
¶算法步骤
高精度数的读取与存储:使用字符串方式读取,然后将每一个字符转为整数,逆向存储到一个整型数组中
模拟加法操作:通过数组下标模拟两个加数中每一个为上数的加法(累加、进位、留位)
去除前导0,逆向重组(因为之前是逆向加,再反过来)
¶高精度加法函数
123456789101112131415161718192021222324252627282930 ...
01背包-目标和
¶题面
力扣题目链接-目标和
给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。
返回可以使最终数组和为目标数 S 的所有添加符号的方法数。
示例:
输入:nums: [1, 1, 1, 1, 1], S: 3
输出:5
解释:
-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-1 = 3
一共有5种方法让最终目标和为3。
提示:
数组非空,且长度不会超过 20 。
初始的数组的和不会超过 1000 。
保证返回的最终结果能被 32 位整数存下。
¶解析
记加负号的元素之和为neg,加正号的元素之和为pos
例如:
给出的数组是 [1,1,1,1,1]
目标的结果是 3
其中的一种组合方法为 +1+1+1 -1 --> pos = 3, neg = 1
$target = pos - ( neg )------①$
这里的关键在于把neg的负号提出来,所以:
$pos ...
动态规划算法
¶动态规划
¶总方法论 - 动态规划五部曲
确定DP数组(DP table)以及下标的含义
动态规划的核心在于理解和明确DP数组所表示的含义
在进行动态规划递推公式推导的时候要紧紧围绕着DP数组的含义
推导递推公式
推导递推公式的关键在于找到当前状态可以由哪些状态转移而来
要搞清楚可以从哪些状态转移来就要紧紧围绕着DP数组的含义
dp数组如何初始化
在确定递推公式之后在进行初始化
确定遍历顺序
举例推导dp数组
如果动规结果不正确,最好的方式是打印出来DP数组的值,分析与预期结果哪里不正确
¶动态规划:01背包理论基础
¶01背包问题基本题目(二维数组解法)
题目描述
有个背包可承受重量N,现有T件物品,每件物品重量为Wi,价值为Vi ,每件物品只有一个,这个背包可以装载物品的最大价值是多少?
输入格式
第一行,两个整数,分别表示N和T,用空格隔开(N≤1000,T≤100)
接下来T行,每行两个整数,分别表示T件物品的重量Wi和价值Vi(1≤Wi,Vi≤100)
输出格式
一行,表示这个背包可以装载物品的最大价值
输入输出样例
输入样例1:
100 5
...