自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 windows资源管理器占用过高CPU的问题

最近,笔者的电脑在进行文件操作时变得异常的卡顿,打开任务管理器发现windows资源管理器占用了50%-80%的CPU。这里指的文件操作包括但不限于解压,复制,粘贴,甚至重命名一个文件夹都会引起50%的CPU占用。在朋友的建议下装了个process explorer看了看,这个软件可以查看进程内具体每个线程的资源占用。随后是具体的线程占用,这里发现了大量的相似线程,其start address均为ntdll.dll!首先是整体的占用,可以看出资源管理器的两个进程占了75%左右的CPU。

2024-01-23 19:30:27 1190

原创 Wordpress搬迁至Hexo

title: Wordpress搬迁至Hexodate: 2020-07-08 20:43:34tags:技术随笔前段时间KosWu跟我聊了有关把博客搬迁至github的事情,当时看了一下相关的东西,但搁置了,今天花了一下午完成了搬迁的工作,写一篇文章记录一下搬迁过程。本文中操作环境为win10。1. 准备工作在开始搭建hexo前,我们需要做一些准备工作。首先我们得创建好博客的Repositories,然后装好node.js,git这两个软件。1.1 在Github上创建博客仓库这.

2021-05-18 14:40:53 465

原创 代码转图工具CodeZen新地址

CodeZen的原地址codezen.rishimohan.me挂了,联系网站管理员后给了本文发布时能用的地址:https://codezen-app.herokuapp.com/CodeZen是一个可以将代码转图的web工具,常用于文章写作。

2021-05-17 17:38:33 403

原创 在Windows下根据TensorFlow官方文档部署cuda环境,进而调用GPU来训练神经网络

博主花了两天时间,总算在win10上完成了cuda环境的部署,期间踩了很多坑。现有的教程大都是通过anaconda部署的,但我是在jupyter上跑的,这一块似乎没什么指导性的教程,所以我决定写一个,顺带将自己遇到的坑ye'ti'yi'ti首先说明一下我的本地环境:tensorflow==2.4.1python==3.6.2jupyter==1.9.0官方文档链接:https://www.tensorflow.org/install/gpu#windows_setup...

2021-02-01 21:34:36 829

原创 2020ICPC南京站总结+补题

本次我们打星参赛,rk95,在银牌区内,希望济南站能发挥出应有的水平拿到银牌。按开题顺序给上思路与代码。L队友1秒签,我也不知道发生了甚么事情。#include <bits/stdc++.h>using namespace std;int t,n,m,a[100005],b[100005],pa,pb,c,ma;int main(){ cin>>t; while(t--){ cin>>n>>m;

2020-12-21 22:40:50 1364 1

原创 利用rmq加速查询后缀数组中两个不同排名的后缀的lcp

原题是SPOJ - REPEATS这道题需要求给出的串中重复次数最多的连续重复子串的重复次数。我们可以枚举循环节长度l,然后查询rk[i],rk[i+l],rk[i+2*l]…的lcp,这个可以通过height数组得到,但是查询过程是o(n)的。但我们知道查询height数组时是一个连续取min的过程,所以这个过程可以通过rmq加速。int dp[maxn][20], mm[maxn];void initRMQ(int n, int b[]){ mm[0] = -1; for(int

2020-10-02 11:53:31 114

原创 hdu4511 小明系列故事——女友的考验 [kuangbin专题-ac自动机]

这道题需要我们将路径表示成字符串形式,再构造fail指针。需要注意的是开始位置是1号点,也就是ch[0][0],而不是根节点。当然如果给的路径中不含一号点,那可以理解成从根结点出发。dp数组保存需要走的最长路径。#include <bits/stdc++.h>#include <iostream>#include <cstdio>#include <queue>#include <map>#include <cstring&g

2020-09-13 21:57:59 738

原创 hdu4758 Walk Through Squares [kuangbin专题-ac自动机]

这道题看起来神乎其神,实际上只是上一道题弱化版的弱化版。。只要构造一个目标串,包含两个输入串就行了。dp[i][j][k][h],i跟j表示当前所在位置,k表示所在字典树节点,h表示两个字符串是否存在的状态(即0,1,2,3,分别表示都不存在,存在1号,存在2号,存在两个)。然后就是简单dp。#include <bits/stdc++.h>#include <iostream>#include <cstdio>#include <queue>#i

2020-09-13 21:54:21 137

原创 hdu3247 Resource Archiver [kuangbin专题-ac自动机]

这道题也很有意思,综合了ac自动机,dp与最短路。本题要求构造出包含所有Resource串,且不含任何的病毒串。不含任何病毒串可以转换成不能走到字典树上某个节点,所以很自然的可以想到本题的关键是从一个resource串转移到另一个需要的最短的新增长度。结合字典树,从一个串转移到另一个串,是不是就可以理解成从前一个串的最后一个字符指向的节点走到后一个串的最后一个字符所指向的节点?这样就在某种程度上转化成了tsp问题。我们先用最短路算法求出所有resource串转移到另一个resource串需要的步骤,就是在字

2020-09-13 21:49:55 281

原创 hdu3341 Lost‘s revenge [kuangbin专题-ac自动机]

这题也很有意思,不只是单纯的要构造出含输入字符串最多的字符串,单个字符还有数量上限。题目的说法是对原字符串进行重新安排,但具体怎么安排,以及操作次数这些是没说的,所以我们可以理解成直接重新构造字符串,并且每个字符出现的次数不能超过原字符串中它出现的次数。这道题中的字符只含ACTG,简化了问题。最终构造出的字符串长度小于40,但如果对ACTG每个字符都开40的大小,那需要404040*40的空间,显然不可能,但我们注意到这四个字符加起来最多也只能出现40次,所以考虑状压,用一维保存这四个字符出现的次数。考

2020-09-13 21:06:39 97

原创 zoj3228 Searching the String [kuangbin专题-ac自动机]

这题考察对ac自动机深一步的使用。我们知道在利用ac自动机进行模式匹配时,是依据是否到达模式串最后一个字符对应的节点来判断是否出现的,因此是允许模式串相互重叠的。然而这一题出现了新的要求,输入数据会指定串能不能重叠,因此我们还需要保存一下每个串上次出现的位置,来判定是否存在重叠。这里需要额外注意一个事情,就是说可能会出现两个相同串的不同询问,一次询问重叠,一次不重叠,因此insert时还需要处理一下这个情况,将第二次出现的串标记一下,并将它的id赋值为它第一次出现时给的id。#include <b

2020-09-13 20:21:33 110

原创 hdu2457 DNA repair [kuangbin专题-ac自动机]

很有意思的一道题,这次在dp的基础上加了修改,要求最少改几次。dp[i][j]表示当前处理到了第i个字符,所在节点为j,需要修改的次数。注意到一件事情,dp[i][j]可以指代原串的前i位经过修改,到达了字典树上的j节点。在dp状态转移时,我们要保证修改后的串不含输入的若干字符串,所以这些串结尾对应的节点我们是不能走的。其他节点都可以走,那么当原串的i+1位与我们要放的字符k不一样时,dp值+1,就可以视作进行了一次修改,到达了ch[j][k]节点了。当然如果原本就没有包含输入的字符串,不修改的状态也会

2020-09-13 20:14:00 100

原创 hdu2296 Ring [kuangbin专题-ac自动机]

比较常规的ac自动机结合dp的题,但这道题要求最后输出构造的字符串,我保存了一堆string。。总觉得不甚美观。具体写法就是先插入字符串,构造fail指针,然后开始dp。dp[i][j]表示当前构造长度为i,所在的节点为j,能得到的最大的value。同时保存对应的字符串。注意需要字典序最小,所以得另外判一下。需要注意的一点是题目的额外要求,如果存在多个value相同的串,优先长度最短,因此最后输出答案时我们得先找到value的最大值,同时保存最短的串的长度,之后只要找一下这个长度的值为最大值的字典序最小

2020-09-13 20:00:00 148

原创 hdu2825 Wireless Password [kuangbin专题-ac自动机]

专题中第一道涉及状压dp的题。这道题相比前两题有个区别,这次是要至少包含k个字符串了,因此我们最后还要找出那些包含大于等于k个字符串的状态。状压原理跟之前学习笔记里提到的一样,给字符串一个编号id,那么标记数组在下标为这个字符串在状态转换图里的结尾位置的节点的值就为1<<id,然后在构建fail指针时逐层取或,这样就能让每个节点记录下它与它能通过fail指针到达的节点所指代的字符串。同时,这个值的二进制形式中1的个数就是包含的不同字符串的数量。#include <bits/stdc+

2020-09-13 19:37:35 91

原创 poj1625 Censored! [kuangbin专题-ac自动机]

有点毒瘤的一道题…这题也是求不含若干个串的长度为m的字符串的个数,但数据会超longlong,因此之前的矩阵快速幂的方法做不了,只能用dp做。ac自动机与dp结合的非常频繁,就当开个头吧。#include <iostream>#include <cstdio>#include <queue>#include <map>#include <cstring>#define fi first#define se second#def

2020-09-11 15:45:39 141 1

原创 hdu2243 考研路茫茫――单词情结 [kuangbin专题-ac自动机]

在做这题前建议先做下poj2778poj2778本题跟poj2778有点类似,他是求不含模式串,长度为n的字符串的个数,本题是求至少包含一个,那么很简单,求出总数,再将不含模式串的数量减去即可。有一些细节需要注意,首先本题的mod是2^64,所以我们把数据开ull即可。然后求总数的话也需要借助矩阵快速幂,线性递推的时间复杂度也是不可接受的。另外,本题还涉及到求和,所以状态转移矩阵中需要增加一维,第L+1列全部为1。#include <bits/stdc++.h>#include &lt

2020-09-11 13:22:58 116

原创 poj2778 DNA Sequence [kuangbin专题-ac自动机]

神题。我在前面的ac自动机学习笔记里曾提过,ac自动机的本质就是构造出一个状态转换图,模式匹配的过程实际上就是在图上进行状态转移。构造出一个长为n的字符串,实际上就相当于在状态转换图上从根节点开始走n步,求所有方案数。而本题中有若干个串不能出现在目标字符串中,换句话说其实就是状态转换图中对应的这些字符串的终点所在的节点不能被走到,即不可达。当n很小时,我们可以借助dp来解决这个问题。dp[i][j]表示当前字符串长度为i,所在的状态转换图中节点为j,转移方程为dp[i+1][ch[j][k]] += d

2020-09-11 13:14:02 142

原创 hdu3065 病毒侵袭持续中 [kuangbin专题-ac自动机]

还是裸题。这次需要统计每个特征码出现的次数。#include <bits/stdc++.h>#define fi first#define se second#define FIN freopen("in.txt","r",stdin)#define FIO freopen("out.txt","w",stdout)#define INF 0x3f3f3f3f#define per(i,a,n) for(int i = a;i < n;i++)#define rep(i,

2020-09-11 12:43:05 94

原创 hdu2896 病毒侵袭 [kuangbin专题-ac自动机]

差不多也是裸题,将病毒特征码插入到字典树后对每个网站源码query一遍即可。当然要记得去重。#include <bits/stdc++.h>#define fi first#define se second#define FIN freopen("in.txt","r",stdin)#define FIO freopen("out.txt","w",stdout)#define INF 0x3f3f3f3f#define per(i,a,n) for(int i = a;i &lt

2020-09-11 12:40:00 134

原创 hdu2222 Keywords Search [kuangbin专题-ac自动机]

ac自动机裸题,可以拿个板子走#include <bits/stdc++.h>#define fi first#define se second#define FIN freopen("in.txt","r",stdin)#define FIO freopen("out.txt","w",stdout)#define INF 0x3f3f3f3f#define per(i,a,n) for(int i = a;i < n;i++)#define rep(i,a,n) for

2020-09-11 12:34:22 112

原创 AC自动机学习笔记

title: AC自动机学习笔记date: 2020-08-31 15:53:40tags:字符串AC自动机ACM8月的最后一天,还是完成了ac自动机的学习。在熟练掌握了kmp后,我发现ac自动机并没有想象的那么难,既不难理解,也不难实现,于是决定写点东西记录一下。本篇主要谈谈ac自动机的理论,思想。写在开头首先我们必须要明确一个问题,即ac自动机到底是干嘛的,我在查阅了许多文章与博客后发现他们并没有把这个问题阐释清楚,这里我解释一下。我们知道,kmp算法可以在o(n)时间内进行.

2020-09-11 12:27:35 169

原创 2020蓝桥杯第一轮省赛B组题解(附题面)

2020蓝桥杯第一轮省赛B组4号省赛,到今天依旧没有一篇题解,索性自己写一个,当然不是标准答案,纯粹是个人的理解,可能会有错误,欢迎指正。个人认为这次省赛的题质量不错,都是能写的题,难度梯度也不错,最后一题可能偏简单了。填空答案没保存,因此只写思路解法。编程题稍后补上代码。

2020-07-07 11:21:14 7135 11

原创 关于长整形乘法取模的溢出问题的解决办法&O(1)快速乘

//依旧是搬运..最近看到一个快速乘法的板子,心生好奇,仔细看了看,跟快速幂的写法很像,然而却不是“快速”乘法,但却能解决乘法取模的溢出问题。众所周知,C++中,对两个长整形进行乘法并取模,在乘法时得到的中间值有可能会超过long long的范围,从而产生数据溢出,得到不可预知的结果。而在程序设计竞赛中,这种情况是经常会出现的,需要我们掌握处理的办法。那么针对这种问题我们有没有解决办...

2019-05-24 22:26:33 1380

转载 Wordpress搭建参考

由个人博客搬运而来,原帖链接:Wordpress搭建参考写于2018/4/16以下是正文: 把博客搭建起来也有几天了,现在才来写这篇博客,也算是有了一定的了解才下手.WordPress到底还是好用,关于网页的东西什么都不用动,只要把服务器与域名绑在一起,再把WordPress部署进服务器就行.首先需要的是一个部署centos7服务器.服务器建议选用国外的,因为国内的服务器基本都...

2018-11-29 21:37:45 193

原创 关于在Win 10上安装运行VC6.0的探讨

//从本人空间日志搬运而来//2018-1-24 00:11ps:如果阁下用的是win7以及更早的Windows版本或者在Win10上顺利安装VC6.0并没有遇到任何编译器问题的话,可以直接略过本篇。在搭载Win10的设备上如何安装运行VC6.0?我姑且将这个问题称为一个世纪难题吧 VC6.0无法直接在搭载Win 10的移动设备上顺利运行,这是众所周知的事实,即使通过兼容模式运行也无济于事。当然,...

2018-03-16 14:21:25 439

原创 关于用二进制科学计数法表示float型数据的笔记

//从本人空间日志搬运而来//2017-10-25 22:01 首先先说一下今天的重难点吧        老师讲的那个东西,我这里就把它形容为用二进制科学计数法表示float浮点数据        相信大家对10进制的科学计数法都很了解,而老师给出的式子是2x×1.y,这里我们只要换一下位置,换成1.y×2x。是不是熟悉多了?10进制里1.y是属于1到10的,二进制自然是一到二...

2018-03-16 14:05:03 4253 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除