Butterfly主题美化进阶
进一步美化Butterfly主题需要 引入外部文件 , 真正实现自己想要的效果
温馨提示:
引入css文件需要修改 主体配置文件 _config.yml , 找到 inject: head
引入js文件需要修改 主体配置文件 _config.yml , 查找 inject: bottom
新建的 css 和 js 文件需要放在 /butterfly/source/… 的 相应文件夹 中
根据主题配置文件 _config.yml 中的提示引入即可
示例:
12345678inject: head: # - <link rel="stylesheet" href="/xxx.css"> - <link rel="stylesheet" href="/css/background.css"> #主题/source/css文件夹中的background.css文件 bottom: # - <script src="xxxx">< ...
P8106[Cnoi2021]数学练习-题解
这篇文章为洛谷P8106-Cnoi2021-数学练习的题解
刚刚学完排列组合特来写一篇题解
1. 思路
首先题目要求我们将 111~nnn 的数分为两个子集。
∣S∣∉S|S| \notin S∣S∣∈/S 且 ∣T∣∉T|T| \notin T∣T∣∈/T。
∣S∣|S|∣S∣ 表示的是 SSS 集合中元素的个数。
由题目的特殊条件我们可以得到该条件的一个充要条件 :
∣S∣∈T|S| \in T∣S∣∈T 且 ∣T∣∈S|T| \in S∣T∣∈S。
这样我们在 “ 安置 ” 好 ∣S∣|S|∣S∣ 和 ∣T∣|T|∣T∣ 后就可以用组合数公式轻松计算出答案了。
但是这边仍然有一个性质我们没有用到 :
当 nnn 为偶数时 ∣S∣≠∣T∣|S| \neq |T|∣S∣=∣T∣ 这是显然的,也是必要的。
2. 解法
枚举 1 ~ n-1 作为 S 集合的元素个数。
已有 $ |T| \in S$。
利用组合数公式挑选剩下 i−1i - 1i−1 个数。
由于 nnn 个数全部挑完 , 所以剩下的数全部纳入 TTT 集合。
我们只需要算 SSS 集合满足题意的个数即可 ...
P5507机关-题解
这篇文章为洛谷P5507机关的题解
这是道很好的搜索练手题
可以用广为人知的搜索三巨头求解
双向搜索
IDA* (在这题貌似被禁了)
A*
这篇题解主要介绍用 A_star 算法 AC 这道题
1. 思路
用 结构体 记录 路径 状态
以及实际步数 g(n) 和估价步数 h(n)
我们都知道 A* 算法的核心在于其估价函数 h(n)
每次取出对应 g(n) + h(n) 最小的 进行下一步搜素
引出一个疑惑 :
每改变一个机关的状态都会有另一个机关跟着改变
那么估价函数如何求解 ?
看作是两个一起变换
可以 用当前状态距离目标状态的理想差值除去 2 得到
2.解法
使用优先队列存储结构体
所以我们需要 重载运算符 :
123bool operator<(const node &a,const node &b){ return a.g+a.h>b.g+b.h;}
经检验 :
由于看作两个机关同时向着目标前进 过于理想
此题的估价函数可以稍微调高一些,用于优化时间复杂度
参数为原估价函数的 1.3 倍
但此时的时间复杂度仍高了 ...
P1763埃及分数-题解
这篇文章为洛谷P1763埃及分数的题解
本题解主要介绍朴素 IDA* 的解法( 360ms )
首先我们需要明白啥玩意是 IDA*
简单来说 IDA* = 迭代加深搜索 + 剪枝
由于我们不清楚本题需要多少个分子为1的分数去拼凑这个答案
所以我们需要用到迭代加深搜索
从1开始枚举深度,直到找到答案
思路
由题面我们不难看出分数是递减的
下一级分数肯定比上一级分数小
本蒟蒻采用从 a/b 减去枚举的分数,直到达到深度作为边界的方法
枚举深度的同时枚举分母,且该分数刚刚好小于上一级所减去的剩下的 a/b
(下文的 get_first 函数)
我们需要保证分子为 1
所以我们在边界的时候做处理:
1 . 当经过上一级处理剩下的 a/b 分子不为 1 ,return false
2 . 若为 1 ,则将该分母直接作为答案
此时我们得到的解肯定是最优的
( 类比 bfs )
需要用到的函数有 :
1 . gcd 函数 ( 便于约分 )
2 . better 函数 ( 更新答案 )
3 . get_firs t函数( 返回 ( 1 / c ) <= ( num / deo )的最 ...
模拟退火
这篇文章主要介绍模拟退火算法的原理以及实现
算法来源
在物理学中,当一个物体的温度很高的时候,这个物体会由高温状态转变为低温状态,而其内部的粒子也 逐渐 由无序转变为有序。这就给我们提供了设计算法的思路:模拟粒子的无序状态,即 随机化 ,而当”温度“越来越低的时候,粒子越来越有序,而我们随机化的 幅度 越来越小,最后就可以得到我们想要的最优解
典例
这里选取来自oi-wiki的一张图片来具象说明
算法实现
基本思路
由算法原理我们可以提取几个关键词:逐渐、随机化、幅度
由此我们可以得到算法实现的基本思路:
定义出一个 足够高的温度T (T一定要足够高!!!)
随机化答案,找到更优解替换当前解
那么我们会不会因为如此而陷入"目光短浅"的僵局呢?
答案是肯定会的!
例如拥有多个峰值的函数,如果单单朝着较优解进发,就很有可能会 错失最优解
所以当我们需要以 一定概率接受较差解 ,用于跳出这种“僵局”
那么这个概率是多少呢?
科学家们以及帮我们计算好了:
e−Δ/Te^{-\Delta/T}e−Δ/T
Δ\DeltaΔ 为当前解和已知解的 差值的绝对值
TT ...
基于Github的Blog绑定阿里云域名
这篇文章主要介绍基于Github的Blog绑定阿里云域名
购买域名
进入阿里云查找自己所需的域名并购买
https://www.aliyun.com/
获取Blog的记录值
win+R输入cmd 打开管理员命令行界面
使用 ping 命令获取Blog的 记录值
12ping yourgithubname.github.io//yourgithubname为你GitHub的用户名
获得如下图所示结果:
获取的红框内容即为 记录值
解析域名
将获得的记录值解析到购买的域名
直接使用 “新手指导” 填入记录值保存即可
GitHub配置CNAME
在GitHub对应Blog仓库的<>Code中
创建CNAME文件
仅需要添加一行你的域名地址即可
比如我的就是 q-thinkgone.cn
修改Blog根目录下的_config.yml文件
将对应的 URL 地址修改为绑定的域名
在GitHub添加所绑定域名
点击头像>Settings
往下翻找到 GitHub Pages
点击 Check it out here!
在Custom domain中添加绑定 ...
中国剩余定理
这篇文章主要介绍中国剩余定理及其解法以及代码实现
中国剩余定理
引子:曹冲养猪
题目链接:https://www.luogu.com.cn/problem/P1495
自从曹冲搞定了大象以后,曹操就开始捉摸让儿子干些事业,于是派他到中原养猪场养猪,可是曹冲满不高兴,于是在工作中马马虎虎,有一次曹操想知道母猪的数量,于是曹冲想狠狠耍曹操一把。举个例子,假如有 1616 头母猪,如果建了 33 个猪圈,剩下 11 头猪就没有地方安家了。如果建造了 55 个猪圈,但是仍然有 11 头猪没有地方去,然后如果建造了 77 个猪圈,还有 22 头没有地方去。你作为曹总的私人秘书理所当然要将准确的猪数报给曹总,你该怎么办?
类似此类问题我们可以使用中国剩余定理求解
限制条件模两两互质
推导
推导过程来源于百度百科(主要是太菜了不会推导)
求解模板
以如下问题为例
问:有数模3余2,模5余3,模7余2,问数几何?
衍数:lcm/除数
逆元:为衍数模除数意义下的数论倒数,设衍数为a,除数为b,则逆元为ax ≡ 1(mod b)的最小正整数解
各总:余数 * 衍数 * 逆元
除数
...
同余&逆元&不定方程
这篇文章主要介绍同余&逆元&不定方程及代码实现
由于本人比较菜,所以一些定理不予证明
同余的概念
同余定理是数论中的重要概念。给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)
【定义】设m是大于1的正整数,a、b是整数,如果m|(a-b),则称a与b关于模m同余,记作a≡b(mod m)。显然易得如下:
1.若a≡0(mod m),则m|a;
2.a≡b(mod m)等价于a与b分别用m去除,余数相同。
充要性证明
充分性:
若a和b用m相除留下相同的余数r,则 a=q1m+r, b=q2m+r,q1和q2为某两个整数,由此的a-b=(q1m+r)-(q2m-r)=m(q1-q2),根据整除定义,我们有m|(a-b),由同余式定义得出结论:a≡b(mod m)
必要性:
若a和b用m相除留下相同的余数r,则 a=q1m+r,b=q2m+r,所以a-b=m(q1-q2) 故 m|(a-b)。
同余性质
反身性:a≡a (mod m)
对称性: 若a≡b(mod m),则 ...
基于Github的Blog搭建
基本工具
Node.js
Git
Sublime Text
链接:https://pan.baidu.com/s/1HXpwYLKjNqWcWEGheD6-ug?pwd=d4jm
提取码:d4jm
也可以到软件官网下载
搭建Hexo
新建一个文件夹作为Blog的根目录
在目录下空白区域右击,打开Git Bash Here
输入以下代码
Hexo安装
1npm install hexo-cli -g
Hexo初始化配置
1hexo init
查看本地运行效果
更改博客时也可以通过本地查看
hexo generate用于生成Hexo页面
1hexo generate
也可以简写为
1hexo g
接着:
1hexo server
hexo server用于本地运行Blog,也可以简写为
1hexo s
出现以下信息说明本地运行成功
1INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop.
可以打开网址 http://0.0.0.0:4000/ 查看效果
Ctrl+C 关闭本地运行
创建GitHub ...
Unity游戏开发日志
2022.2.2
1.完成Unity在VS中的环境配置
2.完成C#Script的创建
3.实现tilemap障碍物刚体
4.实现角色碰撞体和物理配置
5.实现角色Idle和run动画机的创建
6.实现角色Idle和run时方向的变换
7.解决角色方向变换不协调的问题
2022.2.4
1.完成Idle的Bool参数设定,Attack的Trigger参数设定
2.实现角色单次攻击
2022.2.6
1.完成Attack的Int参数设定,Attack的Bool参数设定
2.引入连击计数器HitCount
3.实现人物多段攻击
4.实现攻击结束函数
5.实现攻击结束函数在攻击动画尾帧的插入
