安卓实用软件记录
强制旋转屏幕针对一些软件不对平板进行优化,只能选择一些软件来强制旋转软件的方向:
强制旋转屏幕
github pages 使用自定义域名
暂定 未完成https://www.daxiaju.net/2023/11/30/github-pages-custom-domain/
hexo引用站内文章
语法基本的语法结构如下:1{% post_link 文件夹名/文章名字 %}如果没有放在文件夹中直接使用文章名字也是可以的1{% post_link 文章名字 %}例如:站内文章:使用Git实现hexo多端同步
除了直接使用之外,也可以自定义链接的标题1{% post_link 文件夹名/文章名字 自定义的链接标题%}
如果自定义的链接标题留空,则自动使用文章标题
站内文章:点击这里学习新知识
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.com/Homebrew/ ...
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]的含义就是 nums ...
使用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命令执行后生成的静态页面文件
不需要
packages.json
...
高精度算法
高精度问题高精度主要是解决处理大整数时的问题,这里的整数范围要超过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,逆向重组(因为之前是逆向加,再反过来)
高精度加法函数123456789101112131415161718192021222324252627282930313233343536373 ...