折腾ohmyposh
一直觉得powershell和windows 终端不好看,今天就去美化了一下,我的最终效果: 当然我们要折腾的ohmyposh的主题非常多,还可以自己设计,可以在这里查看自带的主题:官方文档 参考官方文档进行配置:Windows | Oh My Posh 在你即将安装ohmyposh的终端输入: 1winget install JanDeDobbeleer.OhMyPosh -s winget 一条命令就解决了,是不是很简单呢? 如果嫌麻烦的话可以直接去微软应用商店搜索ohmyposh下载:点我 ! 更新可以使用: 1winget upgrade JanDeDobbeleer.OhMyPosh -s winget 安装好了ohmyposh自然需要配置了,在powershell中输入: 安装了vscode的可以使用: 1code $profile 没有安装的或者不想用vscode配置的可以使用: 1notepad $profile 在配置文件中加入: 1234567Import-Module PSReadLine ## 这个工具主要做命令提示管理等操作,默认集成在了 PowerShe ...
hexo-sakura
前两天回去折腾了一下wordpress,那个代码块和公式块给我整傻了,还是回来弄hexo算了,但是还是很重要我wordpress主题的樱花飘落特效,所以给hexo也折腾了一下,从网上找到了js(樱花图片是直接base64编码的,所以js有亿点长): 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151var stop, staticx;var img = ne ...
DP(动态规划)的初步学习-第一部分
Today is the fifth day of the course. Note:dp是什么? 动态规划(DP)不是某种具体算法,而是一种思想。核心在于:把大问题转化为小问题,利用小问题的解,推断出大问题的解。 什么是状态?例子《硬币问题》 Luogu-B3635 今天你手上有无限的面值为1,5,11 元的硬币。给定n,问:至少用多少枚硬币,可以恰好凑出n 元? 思考 用f[x]表示多少钱的时候最小的硬币数,f[x]由上一次选择的最小硬币数+1得到,所以我们只需要找到上一次选择的硬币+1的最小值就可以了。故有状态转移方程: f(x)=\left\{ \begin{aligned} 1+f[x-1]\newline 1+f[x-5]\newline 1+f[x-11]\newline \end{aligned} \right.《凑字》 现在有一篇文章是一个字,你可以添加一个字或者复制整个文章再粘贴(即字数翻倍)。说人话就是可以使一个数字加1或者×2 求码出n字的最小次数 数组f[x],x表示码出x字所需的最小增加次数,因为x字要么是加以得来,要么是×2得来。 所以如果x ...
排序,分治思想的学习
本文实际上是我23日补写的。 排序(sort)是有个非常有意思的算法,今天我们学习了:插入排序、冒泡排序,选择排序。以及可以在做题中使用的:归并排序和快速排序。所有基于比较的排序最低时间复杂度是O(nlogn)*. 有的时候排序并不直接解决问题,但可以起到加速作用;有些算法依赖于 排序。 Note:简单排序插入排序:有的时候排序并不直接解决问题,但可以起到加速作用;有些算法依赖于 排序。 插入排序是在一个已经有序的序列中插入数据,插入后序列依然是一个有序的序列。 即维护一个有序的序列,不断插入元素。 所以我们只要写一个insert()函数,插入序列即可。 12345678910111213void insert(int x){ int pos=0; for(;pos<tot;pos++){ if(a[pos]>x){ for(int k=tot;k>=pos,k--){ a[k+1]=r[k]; } break; } } a[pos]=x; tot++;} 函数的 ...
序列算法-分治思想的学习
本文实际上是我于2022/7/29补写的 分治逆序对(洛谷P1908)我们直接打暴力,枚举每一个树a[i],在a[1~n]直接寻找比a[i]小的数即可。 但是这样很明显不能通过本题,他的时间复杂度是$O(n^{2})$ 我们可以用线段树维护权值数组来加速,但是今天的重点是分治。 我们可以观察到,对于逆序对(x,y),只有3种情况: x,y在左边 x,y在右边 x左边y右边 所以我们能实现一个函数 calc(l, r): 调用 calc(l, mid) 获得左边块内的逆序对个数 调用 calc(mid, r) 获得右边块内的逆袭对个数 亲自去统计跨块的逆序对个数 即为在归并的过程中统计个数。 123456789101112131415161718192021222324252627282930313233343536373839404142434445#include <bits/stdc++.h>using namespace std;int a[500005], n;void input() { scanf("%d", ...
暴力方法
Note:什么是暴力方法 没有准确定义。一般指拿到问题之后,我们第一时间能想到的朴素方法。 暴力算法一般复杂度较高,很多优秀算法是在朴素算法之上改进而来的。 就直接硬写,写出来后再进行各种优化。 什么是模拟 「模拟」,顾名思义,把出题人描述的场景用代码实现。一般不需要我们的算法作决策。只需要模拟即可。 模拟是一类题目的统称,有难有易,简单的有A+B problem,难的有猪国杀,一般考察代码能力。 用代码把题目里的场景重现一遍。可能有些模拟算法需要优化。 模拟 - OI Wiki (oi-wiki.org) 基本枚举方法 所谓枚举,即不重不漏地列举出所有情况。常用手段:循环、递归 尝试每一种情况。当然,一些不可能的情况可以不去枚举,以此优化时间复杂度。 现代cpu的运算速度一般达到了2000w/s,所以只要预估不超过2000w的运算,那么这个算法就是可行的。 O(n^{2})一般可以跑5000的数据 O(n^{3})一般可以跑500的数据 O(n!)只能跑到10 因为时间复杂度是预估的,实际可能更大或者更小 Learned:递归枚举——深度优先搜索(Depth-firs ...
时间复杂度的学习
今天是课程的第一天,众所周知上课不做笔记等于没上。 时间复杂度时间复杂度:算法需要跑的时间(单位是操作数)。 一般会省略常数项,所以 123for(int i=1;i<2^32-1;i++){ printf("%d\n",i);} 的时间复杂度是O(1); 所以在时间复杂度中 log的底数可以省略. 空间复杂度 粗略定义:整个程序占用了多大的内存。 各种变量类型占用的空间C 结构体占用空间(内存) struct 的空间占用不要目测,要用 siezeof 查看 sizeof是个假函数,在编译器就已经跑了. 一个类型占用的空间和操作系统平台也息息相关。 C++ 坑点 不要在局部变量开大数组(虽然我开数组从来开全局) 给大数组直接赋值1int a[1e10+5]={1,2,3,4,5}; 会直接给你的可执行文件中中写1e10个0,然而在CSP中你的代码不得超过512KB(和可执行文件没有关系),但是这样会编译超时。 所以应该: 12345678int a[1e10+5];void init(){ a[0]=1 ...
hexo设置自定义字体粗细
用F12搞了2天终于配置好了自定义字体,这时候就有人要问了,为什么不直接在Butterfly 里设置字体呢?那是因为我设置font-family后找不到我的font-family。只能用 !important 提高优先级来替换字体了。可以参考我的font.css 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140@font-face { font-family:'arzhu'; s ...
[模板]进制转换(10 to 2)
code:1234567891011int decToBin(int dec){ int result = 0, temp = dec, j = 1; while (temp) { result += j * (temp % 2); temp = temp / 2; j = j * 10; } return result;} This article was written on 2022/7/10.
[刷题记]Luogu-B2140
遇到了一个有意思的题目,有意思的点不在于题目本身,在于它的10进制转2进制。 题目传送门:B2140 二进制分类 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 想了很久才想出这个模板: 1234567891011int decToBin(int dec){ int result = 0, temp = dec, j = 1; while (temp) { result += j * (temp % 2); temp = temp / 2; j = j * 10; } return result;} 可以在草稿纸上演算一下。 code: 12345678910111213141516171819202122232425262728293031323334353637383940414243#include <cstdio>int n, ansa, ansb;int decToBin(int dec){ int result = 0 ...