找到一个可以变动的位,变动后再将其它位对齐,对齐完后输出即可。
1 |
|
普及-
以内,算是一道水题。读入一个单词,遍历一遍找到出现次数最大以及出现次数最小的数(这个数 $ >0 $ ),相减后判断是否为质数即可。
1 |
|
go.php
的东西,可以经过自己站点的网页再跳转出去,方便SEO优化。但是像Hexo这类静态博客,想要从源HTML修改链接难度有点大,这里我们采用JavaScript动态修改。博主根据这个大佬的博客里的二次跳转,魔改了一个静态版:Go Jumper
所以,现在登陆你的Github账号,Fork这个仓库,选择你的个人账户。
Fork完毕后,点击Settings->Pages,将原分支从none
修改为master
,目录保持为/(root)
,然后Save。
这样,你自己的Go Jumper就成功部署在https://[你的Github用户名].github.io/go-jumper/
了。
当然,你也可以绑定自己的域名,或者部署到其他的平台,这里不展开赘述。
为了方便,我们这边直接在线修改:打开https://github.com/[你的Github用户名]/go-jumper/edit/master/config.json
,修改以下内容:
1 | { |
修改完成后保存。
新建[主题根目录]/source/js/link-checker.js
,内容如下:
1 | $(document).ready(function(){ |
然后,我们要将代码注入到主题中,在主题_config.yml
中找到inject
项:
1 | inject: |
这样,当博客加载完毕的时候,博客的全部外链就会被加上二级跳转,但是源HTML里的外链不变。
在index.html
中,博主插入了广告代码,有需要的可自行删除:
1 | <div id="google-ads"> |
微软一直都向开发者提供免费的Microsoft 365(即原Office 365)全家桶,申请开发者计划可以获得三个月的E5订阅。
而E5订阅内包含了25个Microsoft 365的授权许可,同时附带5T的OneDrive不限速存储。
现在网上很多教程的申请链接都失效了,原因是著名的“微软改名部”将Office 365
改名为了Microsoft 365
,同时相关的网址也被替换,最新的申请链接:https://developer.microsoft.com/zh-cn/microsoft-365/dev-program
打开链接后,点击“立即加入”,登陆你的Microsoft账户,这里不进行赘述(没有?自己去创建一个)
登陆账号后,会跳转至填写页面,按照自己的情况填写,公司可随意填写。
上一步填写完成后,会跳转到这样的页面:
如果你使用的语言是简体中文,那么你现在打开的网址为:
1 | https://developer.microsoft.com/zh-cn/microsoft-365/profile |
现在,将URL中的zh-cn
替换为en-us
,切换至英文页面。
1 | https://developer.microsoft.com/en-us/microsoft-365/profile |
如果不切换语言,在验证手机号的步骤会提示“无法连接到reCaptcha服务”。
如果你想要自定义域,选择第二个,不想麻烦可以选第一个,博主选择的是第二个。
这一步需要自己填写信息,务必记住账号和密码。
验证手机号,可以使用中国大陆手机号。
设置完成后,将页面切换回简体中文吧(
1 | https://developer.microsoft.com/zh-cn/microsoft-365/profile |
如果你只是自己用,到这步就完成了,你可以直接在Microsoft 365系列软件中登录并使用了。
登陆时,请使用你在配置时的xxx@xxx.onmicrosoft.com
的账户!
如果你要将许可分配给朋友、家人 和淘宝用户,可以在这里进行操作:https://admin.microsoft.com/Adminportal/Home#/homepage
打开 https://admin.onedrive.com/?v=StorageSettings ,在侧栏“设置”中找到存储限制:
如果要设置单个用户容量,可以在 https://admin.microsoft.com/Adminportal/Home#/homepage 中的账户管理进行分配。
分配前,请使用被分配账户登陆一次OneDrive。
咕咕咕,等下一篇文章吧~
]]>live2d
模型可以自动欢迎,但是自己又不会魔改Hexo
的live2d
,就想到了以弹窗的方式来欢迎。本文基于Hexo+Butterfly主题,其他主题的修改可能会有所不同,请自行了解文件对应位置。
Butterfly主题已默认开启Pjax。
此版基于博主之前所发布的关于NexT主题的修改,同时修复了部分问题。
最终的实现效果如下:
首先,你既然要弹窗,就要好看,而不是JavaScript
里的alert()
函数,在洛谷上做题的时候,看到“提交成功”的弹窗还比较好看,就查找了一下来源(详情),然后选定了这个,感觉还不错。
作者使用了Git进行主题安装。如果您使用的是npm安装,请将以下目录中\themes\butterfly\source\
替换为\source\
。
我们需要将sweetalert.js
和sweetalert.css
放到自己博客下,防止CDN炸裂导致的错误。
在博客根目录往下找到\themes\butterfly\source\js
文件夹,新建sweetalert.js
,文件内容请看这里,觉得复制麻烦的可以直接按Crtl+S
进行保存。
在博客根目录往下找到\themes\butterfly\source\css
文件夹,新建sweetalert.css
,文件内容请看这里。
保存完后的结构如下:
打开主题配置文件,在inject
配置项的head
中进行注入:
1 | inject: |
这样就完成了引入。
在博客根目录往下找到\themes\butterfly\source\js
文件夹,新建welcome.js
:
1 | function welcome(){ |
这样,就大功告成了。
]]>以下主题仅为博主个人意见,您也可选择其他主题。
Butterfly是一款卡片式UI设计的Hexo主题,作者来自中国香港。本站使用的即为Butterfly主题,支持浅色/深色主题调节,功能丰富,喜欢花里胡哨的可以用这款。
官方演示地址:https://butterfly.js.org/
博主曾经使用过NexT主题,NexT中还有四个主题,分别为Muse、Mist、Genimi、Pisces。博主认为Genimi和Mist比较好看,分明一点。
官方演示地址:
一款Material Design风格的主题,平面化的福音。
官方演示地址:https://hexo.fluid-dev.com/
三栏卡片式设计,但是修改麻烦,博主本来想用这个主题的,但是调配置调吐了,希望作者可以优化一下吧……
官方演示地址:https://ppoffice.github.io/hexo-theme-icarus/
Uh…这个主题挺粉嫩的,可以魔改下配色🙄
官方演示地址:https://nexmoe.com/
主题安装从Hexo 5.0.0版本以上支持两种方式:git
和npm
安装。
优点:安装快、更新快
缺点:魔改不方便
安装方式:npm i [Theme Name] --save
优点:方便魔改,目录较为清晰
缺点:GitHub在国内速度不稳定,clone
易受网络波动
安装方式:git clone [Theme Repo] themes/[Theme Name]
命令:hexo config theme [Theme Name]
以下内容摘自Wikipedia。
博客(英语:Blog)是一种在线日记型式的个人网站,借由张帖子章、图片或视频来记录生活、抒发情感或分享信息。博客上的文章通常根据张贴时间,以倒序方式由新到旧排列。
许多博客作者专注评论特定的课题或新闻,其他则作为个人日记。一个典型的博客结合了文字、图像、其他博客或网站的超链接、及其它与主题相关的媒体。能够让读者以互动的方式留下意见,是许多博客的重要要素。大部分的博客内容以文字为主,也有一些博客专注艺术、摄影、视频、音乐、播客等各种主题。博客是社交媒体网络的一部分。
以下内容摘自Wikipedia。
如同日记一般,事实上,博客(blog)原本的字义(weblog)就是网络日志(web log),可将自己每日生活中发生的事情记录下来,并且跟朋友或网友们分享.
博客常用来抒发个人情绪,把生活中的不满、郁闷或愤怒宣泄到博客上,或是与网络上的网友们分享个人开心的心情。
如果有专长、兴趣的人,可以借由撰写博客来分享自己的知识与技术,并和网络上的网友交流讨论。
借由博客的社群性质可以吸引兴趣或性格相合的网友来观看,并且借此认识结交新朋友。
借由博客可分享自己的文学创作或图像作品,并供网友们观看取用。创作者获得与阅听者在网络上沟通的机会,进而扩大参与和影响。
科学家早已知道写下自己的个人经验是具有医学价值的。博客提供了一个方便纪录个人经验的管道。研究显示它可帮助记忆和睡眠、增强免疫细胞的活动、减少艾滋病患者病毒量,甚至可以加速手术后的复原。
Hexo是一款快速、简洁且高效的博客框架,渲染速度快,支持Markdown,且支持各类型的Extensions,十分容易上手。
在使用Hexo前,你需要先安装好Git和Node.js,本处不再赘述。在安装完成后,你只需要运行以下的Bash命令(在操作前,请先cd
到您的目录下,以免不必要的麻烦):
1 | npm i hexo-cli -g |
Hexo会自动将框架Clone至blog
文件夹,我们只需要等待其完成。
在文件夹下,我们只需要运行hexo s
就可以在本地一览博客啦!
可以看到,Hexo已经自动创建了一篇叫Hello World
的默认文章,这说明我们的博客框架已经初始化完成了!不过这时候的博客还很单调,需要我们后续的修改,这段内容将会在未来的教程中展开叙述。
如果你想新建一篇文章,可以运行以下的Bash:
1 | hexo new post "xxx" |
Hexo就会自动创建一篇叫xxx
的文章。
但如果我想创建的不是文章,是一个单独的页面呢?
1 | hexo new page "xxx" |
这样就能创建一个叫xxx
的页面。
限于篇幅与博主的时间原因,这篇教程只能拆开来一点点讲,还请关注qaq
]]>_config.yml
里的默认CDN,导致不能快速替换掉现在极不稳定的jsDelivr CDN。本文的默认Butterfly版本为4.1.0
。现在的默认CDN地址被放在了主题的/scripts/events/config.js
中:
1 | /** |
所以只要快速替换掉这里的CDN,就可以切换到我们自建的CDN上。
将cdn.jsdelivr.net
全部替换为自己的反代源后,成果就诞生了:
1 | /** |
替换完后,运行hexo cl && hexo g -d
部署后,就成功切换到了你的反代源上。你也可以直接复制博主的成果进行使用~
由于jsDelivr被封锁,导致了原来使用jsDelivr的CDN服务的网页速度缓慢,多数功能不正常。要解决这个问题,要么更换CDN,要么给jsDelivr套上一层反向代理。这里博主采用了Cloudflare Worker。
登录到Cloudflare控制台,点击侧栏的Workers,新建服务。
在创建页面填入你自己的服务名称。
创建后将转入资源页面。
点击“快速编辑”,在代码框内复制以下代码:
1 | // 替换成你想镜像的站点 |
你也可以去我的Github仓库中查看:https://github.com/pai233/jsdelivr-worker/
保存并部署后,你的反向代理就生效了。
博主部署了两个Workers,供大家免费使用:
使用时,将原来的cdn.jsdelivr.net
域名替换为您的Worker或者博主提供的Worker就可以了。如:
1 | https://cdn.jsdelivr.net/gh/pai233/cdn-assets/1.png |
将cdn.jsdelivr.net
替换为我们的Worker:
1 | https://jsdelivr.pai233.workers.dev/gh/pai233/cdn-assets/1.png |
这样,就能保证较为稳定的使用jsDelivr的服务了。
]]>对于一个网站来说,域名相当于它的门户。所以,一个好的域名非常重要。因此,博主拒绝以下类型的域名交换友链:
.onion
等无法通过正常互联网访问的免费域名包括但不限于以下几种:
.tk
、.cf
、.ga
、.ml
等免费域名请注意,由于国内的部分Pages服务,如Gitee Pages(gitee.io
)拒绝提交其域名至PUBLIC SUFFIX LIST,根据第三条的定义,此类申请将被拒绝。我们建议您将博客部署到其他平台,如Cloudflare Pages、Vercel等。
免费域名不包括以下定义:
.tk
等域名(需提供凭证)github.io
)pages.dev
)对于一个博客,优质内容也是很重要的一个关键。请保证您的博客有 实质性 内容,博主拒绝站点内容多为采集、抄袭的站点交换友链。博客可以长草,但不能滥竽充数。
另外,如果您的网站出现冒用备案、传播违反中华人民共和国法律的内容时,博主将拒绝此类友链并举报至相关部门。
由于本站主要向中国大陆地区用户,因此,您需要保证您的博客在中国大陆地区访问正常,未出现css
样式丢失,大量图片404
等严重影响用户体验的情况。
同时,为了保证访问的安全性,您的博客需要开启https
。目前多数主流平台均以支持一键开启https
,您可以搜索🔍您的平台如何开启https
。
英语原题:http://usaco.org/index.php?page=viewproblem2&cpid=966
翻译:
Farmer John 的奶牛们最近成为了一个简单的数字游戏FizzBuzz
的狂热玩家。这个游戏的规则很简单:奶牛们站成一圈,依次从一开始报数,每头奶牛在轮到她的时候报一个数。如果一头奶牛将要报的数字是 的倍数,她应当报Fizz
来代替这个数。如果一头奶牛将要报的数字是 的倍数,她应当报Buzz
来代替这个数。如果一头奶牛将要报的数字是 的倍数,她应当报FizzBuzz
来代替这个数。于是这个游戏的开始部分的记录为:
由于词汇的匮乏,奶牛们玩的 FizzBuzz
中用Moo
代替了 Fizz
、Buzz
、FizzBuzz
。于是奶牛版的游戏的开始部分的记录为:
给定 ( ),请求出这个游戏中第 个被报的数。
每 个数字为一组,形成规律:
但是在遇到 的倍数会出现一点问题,我个菜鸡不知道为啥,所以用了特判/kk
1 |
|
为了确保评测间的公平性,我们采用了同一地区(四川成都)的三大运营商的网络进行测试。
推荐指数:⭐⭐⭐⭐⭐
服务器地理位置:美国自家节点
推荐原因:速度稳定,在全球各地均有CDN,支持从Github/Gitlab等平台自动部署
缺点:部署速度较慢,但不算太影响
电信:从大陆直连美国
联通:绕行欧洲后到美国
移动:到达香港后无法追踪(移动就这德性)
官网指路:https://www.cloudflare.com
推荐指数:⭐⭐⭐⭐
服务器地理位置:美国AWS
推荐原因:部署速度快,支持自动部署
缺点:被墙过一次,速度有可能出现不稳定
电信:大陆绕道日本后连接美国
联通:直连美国后到新加坡(?再回美国
移动:绕道香港后直连
官网指路:https://vercel.com
自己测试:https://vercel.cdn.blog.pai233.top/
推荐指数:⭐⭐⭐⭐
服务器地理位置:香港阿里云
推荐原因:支持自动部署,服务器邻近大陆
缺点:新平台,不确定是否能稳定运转
电信:先跨运营商,通过联通出香港,后到新加坡,最后香港
联通:绕香港后到新加坡,最后香港
移动:绕香港后到新加坡,最后香港
自己测试:https://4everland.cdn.blog.pai233.top/
推荐指数:⭐⭐⭐
服务器地理位置:新加坡AWS
推荐原因:支持自动部署,连接速度较快
缺点:控制台无法在国内正常打开,需要走出世界
电信:大陆直连
联通:大陆绕道日本、美国后到新加坡
移动:绕道香港、美国
官网指路:https://netlify.com
自己测试:https://netlify.cdn.blog.pai233.top/
推荐指数:⭐⭐
服务器地理位置:美国
推荐:push
即部署,简单快捷
缺点:网络连接严重不稳定
由于博主行文至此时发现原使用的测试平台已下线四川成都移动线路,无法正常测试,这里就放张全国的测速图给大家感受一下吧:
大家看各自需要,找一个适合自己的就OK的啦~
]]>以下内容摘取自Wikipedia。
Firebase是Firebase,Inc.在2011年发布的行动和网络应用程序开发者平台,在2014年被Google收购。
截至2020年3月,Firebase平台拥有19项产品,它们被超过150万个应用程序采用。
这 万恶资本 Google的坑,怎么能不白嫖呢😏
Tip: 以下内容在中国大陆需要掌握浏览世界的方法(嘘🤫——
打开Firebase官网,登陆账号并转到控制台。
选择“添加项目”,输入您的项目名称,如果你喜欢,可以编辑您项目的唯一标识符(位于名称框的左下角)
点击下一步,到询问是否启用分析页面,这里根据你个人的喜好来吧~
选择完后,项目开始创建(如果您启用了分析,可能还要选择账户)。
然后会进入到选择计划的页面(由于博主先前已经创建过了,并没有弹出),按照你的喜好来 (不会有人给Google交钱吧),选择完后整个项目就OK了。
因为Hexo在之前并没有将博客发布到Firebase的插件,博主就自己做了一个hexo-deployer-firebase,但在使用前,还需要你安装Firebase CLI。
Firebase CLI在官网上提供了两种安装方式,分别是安装包安装和npm
安装。
我们既然都用Hexo了,那么肯定装好了npm了吧(
1 | npm i -g firebase-tools |
按照你想用的方式安装好,在命令行中运行
1 | firebase login |
如果你无权访问localhost
(个人电脑应该都可以吧),可以使用
1 | firebase login --no-localhost |
登陆您项目所对应的Google账号,登陆完后,这一步就OK了。
将命令行切换到您的博客根目录下,运行
1 | npm i hexo-deployer-firebase --save |
安装插件。等待进度条跑完,即安装成功。
打开Hexo的_config.yml
文件,在您的deploy
处进行配置:
1 | deploy: |
例如博主的是这个样子:
现在,你可以愉快的将博客发布到Google Firebase上啦~
能完成这个项目,需要感谢:
]]>更换主题后,在保留原有功能的同时,还增加了许多新功能:
这个东西的自动广告真的太迷惑了,在调了在调了😅
原NexT主题的博客页面已经备份好了:https://old.blog.pai233.top/
但是应该不会再更新了……
]]>博主现在用着的是一块某G姓品牌的GA-Z77P-D3(如下图,图源网络)
这块主板搭载了双BIOS(位于主板右下角SATA接口上),在主BIOS故障时,可以通过Backup BIOS进行恢复。但博主之前不知道,第一次卡BIOS时,还拿出去给奸商大砍30大洋,血一样的教训……
现在第二次卡BIOS,终于知道了有双BIOS,这次就直接恢复试试。
博主没有别人短接BIOS针脚的实力,也没有断电几分钟自动恢复的运气,只能踏踏实实的恢复BIOS。
将计算机关机
长按开机键,开机后不要断开
等待约10秒后计算机自动断电重启
进入BIOS恢复页面等待
Tip:有时候长按开机键后,CPU风扇刚刚起转就断电了,这种情况可能需要多试几次。
等待进度条跑完,重启,电脑成功启动进入系统。
go.php
的东西,可以经过自己站点的网页再跳转出去,方便SEO优化。但是像Hexo这类静态博客,想要从源HTML修改链接难度有点大,这里我们采用JavaScript动态修改。博主根据这个大佬的博客里的二次跳转,魔改了一个静态版:Go Jumper
所以,现在登陆你的Github账号,Fork这个仓库,选择你的个人账户。
Fork完毕后,点击Settings->Pages,将原分支从none
修改为master
,目录保持为/(root)
,然后Save。
这样,你自己的Go Jumper就成功部署在https://[你的Github用户名].github.io/go-jumper/
了。
当然,你也可以绑定自己的域名,或者部署到其他的平台,这里不展开赘述。
index.js
为了方便,我们这边直接在线修改:打开https://github.com/[你的Github用户名]/go-jumper/edit/master/js/index.js
,修改以下内容:
1 | document.getElementsByClassName("loading-text")[0].innerHTML = "参数错误,将跳转至pai233の小窝<dot>...</dot>"//修改为你自己的提示 |
然后直接commit,现在,你可以通过https://[你的Go Jumper部署地址]#[跳转网页的base64编码]
来测试一下。
这里以博主使用的Hexo+NexT主题为例,新建[主题根目录]/source/js/link-checker.js
,内容如下:
1 | $(document).ready(function(){ |
最后到[主题根目录]/layout/_layout.swig
中,在</head>
标签前加入以下内容:
1 | <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> |
这样,当博客加载完毕的时候,博客的全部外链就会被加上二级跳转,但是源HTML里的外链不变。
在index.html
中,博主插入了广告代码,有需要的可自行删除:
1 | <div id="google-ads"> |
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:点击这里
]]>小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低。但普通的数独对他们来说都过于简单了,于是他们向 博士请教, 博士拿出了他最近发明的“靶形数独”,作为这两个孩子比试的题目。
靶形数独的方格同普通数独一样,在 格高的大九宫格中有 个 格高的小九宫格(用粗黑色线隔开的)。在这个大九宫格中,有一些数字是已知的,根据这些数字,利用逻辑推理,在其他的空格上填入 到 的数字。每个数字在每个小九宫格内不能重复出现,每个数字在每行、每列也不能重复出现。但靶形数独有一点和普通数独不同,即每一个方格都有一个分值,而且如同一个靶子一样,离中心越近则分值越高。(如图)
上图具体的分值分布是:最里面一格(黄色区域)为 分,黄色区域外面的一圈(红色区域)每个格子为 分,再外面一圈(蓝色区域)每个格子为 分,蓝色区域外面一圈(棕色区域)每个格子为 分,最外面一圈(白色区域)每个格子为 分,如上图所示。比赛的要求是:每个人必须完成一个给定的数独(每个给定数独可能有不同的填法),而且要争取更高的总分数。而这个总分数即每个方格上的分值和完成这个数独时填在相应格上的数字的乘积的总和。如图,在以下的这个已经填完数字的靶形数独游戏中,总分数为 。游戏规定,将以总分数的高低决出胜负。
由于求胜心切,小城找到了善于编程的你,让你帮他求出,对于给定的靶形数独,能够得到的最高分数。
这道题爆搜肯定不行,所以要像平时做数独时一样,从 少的地方开始搜索。
1 |
|
西西需要把输入的电压 伏通过一系列电压放大器放大成原来的 倍,然后输出。
西西现在手上有两种放大器:
第一种能够把X伏的电压放大成 伏
第二种能够把X伏的电压放大成 伏
放大器是串联(即按顺序放在一条线路上)的。
现在西西手上有用不完的放大器,他希望能组出一个电路,使用数量最少的放大器,使得电压被放大了刚好 倍。
将两种操作分别添加进队列,找到合适答案后跳出。
1 |
|
由于能够出现答案的 都是奇数,所以提前特判,然后倒推。
1 |
|
这道题明显一开始想复杂了,没有细推数据,下次还是要注意。
]]>鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!”。 鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图)。
有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。”
我们假定多多在每个单位时间内,可以做下列四件事情中的一件:
1.从路边跳到最靠近路边(即第一行)的某棵花生植株;
2.从一棵植株跳到前后左右与之相邻的另一棵植株;
3.采摘一棵植株下的花生;
4.从最靠近路边(即第一行)的某棵花生植株跳回路边。
现在给定一块花生田的大小和花生的分布,请问在限定时间内,多多最多可以采到多少个花生?注意可能只有部分植株下面长有花生,假设这些植株下的花生个数各不相同。 例如在图2所示的花生田里,只有位于的植株下长有花生,个数分别为。沿着图示的路线,多多在个单位时间内,最多可以采到个花生。
曼哈顿距离跳到下一植株,同时要注意第步时可以直接跳过去。
1 |
|
原题导航:https://www.luogu.com.cn/problem/P1014
一个表格:
, , , , …
, , , …
, , …
, …
…
按照Z字型排列,即:
问第项是什么。
这样的表格比较难看,我们先把它转换一下:
这样将每一行都分离了出来,可以发现,每行的数的数量形成了等差数列。第一行有个数,第二行有个数……
那么,我们就要将第项所在行找出来:
1 | int add=1; |
当然,这个可以直接算出来,没有必要暴力枚举,但数据太水了,依旧可以过。
知道它是第几行的,我们就要看他是什么了。不难发现,当add
是奇数的时候,add
行分母依次为从递增到add
的数列,分子为从add
递减至的数列;而当add
是偶数的时候,add
行分子依次为从递增到add
的数列,分母为从add
递减至的数列。
可以得到以下的代码:
1 | //add为当前行数的数量,n是倒数第几个,最后别忘了+1 |
完整AC代码:
1 |
|