自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 educoder SML程序设计题线下编译环境搭建

背景最近《串并行数据结构与算法设计》的老师在educoder上布置了一些SML程序设计题,虽然网站上有在线编译功能,但还是在线下编译调试方便,特记录编译环境过程如下(我用的GVIM,但Notepad++、Visual Studio Code等编辑器可以类推)第一步:安装编译器下载Standard ML of New Jersey(https://www.smlnj.org/)...

2019-09-22 20:20:00 605

转载 使用OpenCV对图片进行特征点检测和匹配(C++)

背景最近从不同网站下载了非常多的动漫壁纸,其中有一些内容相同,但是大小、背景颜色、色调、主人公的位置不同(例子如下)。正因为如此,基础的均方误差、直方图检测等方法很难识别出这些相似的图片。思路OpenCV中有很多用来对特征点进行检测和计算的函数,这些函数能够利用像素点及其周围的灰度检测其是否是图像中的特征点,并计算出它的信息,比如ORB、SIFT、SURF、AKANA。同...

2019-08-10 21:49:00 4473

转载 用matplotlib画简单折线图示例

例1import numpy as npimport matplotlib.pyplot as pltfrom scipy import statsrx1 = np.array([54.52, 55.14, 55.80, 56.43, 57.08, 57.71, 58.35, 58.97, 59.61, 60.25]) #纵坐标t1 = np.linspace(20.5, 47...

2019-03-05 17:22:00 369

转载 使用QtCreator遇到的一些问题

0. 背景最近在学习QtCreator(版本:4.8.1;编译器:MSVC 2017 64-bit),遇到了一些问题,特记录如下。(1. 引用库QtCreator可以直接包含Windows.h,但是没有默认引用User32.lib,所以需要在设置里面引用,步骤如下:右键点击左边栏的项目名称,点添加库,之后跳出一个选择框。如果是像上面说的这种能够直接包含头文件的就选系统库,而对于网...

2019-02-06 16:21:00 810

转载 PdfSharp库剪裁Pdf页面边缘空白部分

背景网上下载下来的Pdf格式电子书放到Kindle后由于页面太大,缩放后字常常小得看不清,因此可以通过剪裁页面边缘的空白以缩小页面,使Kindle上显示的字放大。在GitHub上星最多的C# Pdf处理库就是PdfSharp了,然而这个库没有Api手册,需要从零散的示例中找到需要的函数,因此将代码记录如下方便以后参考。多页Pdf重叠至一页using PdfSharp.Pdf;us...

2019-01-30 18:10:00 519

转载 用PyInstaller打包用PyQt5编写的python程序

0.背景本弱初学PyQt5,写了一个GUI小程序,但在用PyInstaller打包时出现了不少问题,现将几个比较大的问题记录如下,希望以后能记住。1. 资源打包首先是资源打包的问题,我写的程序引用了一张图片,那么在没经过特殊处理的情况下如果想让程序正常运行,就必须把图片放在和程序同一个目录下,但这样总觉得不太舒服。我在网上看到有三种解决方法:一是通过修改PyInstall配置文件*...

2018-12-31 21:26:00 299

转载 git基本操作

在当前文件夹创建git目录git init添加当前文件夹的文件或确认文件修改(未保存)git add 文件git add . 添加该文件夹所有文件删除当前文件夹的文件(未保存)git rm 文件保存并说明git commit -m "说明"查看之前的更改git log添加密钥ssh-keygen -t rsa -C "邮箱"然后将.ssh文件夹里的id_rsa....

2018-09-21 15:14:00 97

转载 vim使用总结

1. 我的vim配置set go= "去掉ui界面set nocompatible "关闭UI兼容模式colorscheme desert "配色方案set fencs=utf-8,gbk,gb2312set encoding=utf-8set fileencoding=utf-8 "文件编码set nobackupset noundofileset noswapfil...

2018-08-28 14:06:00 129

转载 ffmpeg常见用法总结

1. 视频/音频剪切:ffmpeg -i input_file [-ss 00:00:10] [-t 00:00:20] output_file去掉-ss指令表示从头开始去掉-t指令表示剪切到结尾2. wav转MP3:ffmpeg -i input.wav -acodec mp3 output.mp33. 视频/音频连接:创建input.txtfile '/input...

2018-08-28 13:11:00 264

转载 bzoj3367[Usaco2004 Feb]The Big Game 球赛*

bzoj3367[Usaco2004 Feb]The Big Game 球赛题意:n只奶牛,每只支持两个球队中的一个,它们依次上车,上到一定程度可以开走这辆车并换下一辆继续上。要求一辆车上支持不同球队的奶牛数的差≤I,或者这辆车上只有支持同一球队的牛。问通过安排换车时机所能得到的车数的最小值。n≤2500。题解:f[i]=f[j]+1,abs(sum[0][i]-sum[...

2016-11-17 07:00:00 134

转载 bzoj3378[Usaco2004 Open]MooFest 狂欢节*

bzoj3378[Usaco2004 Open]MooFest 狂欢节题意:n只奶牛,第i只听力为vi,坐标为xi,两只奶牛聊天时音量是max(vi,vj)*abs(xi-xj)。求n(n-1)/2对奶牛的音量和。n≤20000。题解:首先所有奶牛按x排序,记录其位置,接着再按它们音量升序排序依次插入树状数组。维护两个树状数组,一个用来求位置比某奶牛大的坐标和和奶牛数,另...

2016-11-17 06:53:00 110

转载 bzoj3446[Usaco2014 Feb]Cow Decathlon*

bzoj3446[Usaco2014 Feb]Cow Decathlon题意:FJ有n头奶牛。FJ提供n种不同的技能供奶牛们学习,每头奶牛只能学习一门技能,每门技能都要有奶牛学习。 第i头奶牛学习第j门技能,FJ得到的分数S[i][j]。此外还有b个奖励,第i个奖励的格式是: Pi 、Ki 、Ai,表示的意义是:如果学习完前Ki门技能后的总得分(包括额外的奖励得分)不少于Pi,那...

2016-11-17 06:43:00 117

转载 bzoj1745[Usaco2005 oct]Flying Right 飞行航班*

bzoj1745[Usaco2005 oct]Flying Right 飞行航班题意:n个农场,有k群牛要从一个农场到另一个农场(每群由一只或几只奶牛组成)飞机白天从农场1到农场n,晚上从农场n到农场1,上面有c个座位,问最多可以满足多少只牛的要求。n≤10000,k≤50000,c≤100。题解:用类似贪心的方法做,现将每个农场出发的牛组织成链表。先求早上:当飞机到达每...

2016-11-16 06:49:00 138

转载 分解质因数的技巧

背景:有时分解一个很大的合数,因为可能质因子很大,导致分解时复杂度不是严格O(log2n),需要用一点技巧使其复杂度得到保证。做法:在筛法求质数时,不用把质数存储成一张表,而用一个数组big[i]保存每个数(不管是质数还是合数)的最大质因数,接着在分解一个数x时,令y=x,之后不断地y/=big[y],并且把每次的big[y]作为x的一个质因数,这样就可以了。201611...

2016-11-15 22:01:00 750

转载 bzoj3732Network

bzoj3732Network题意:给一个无向图,k个询问求节点a到节点b最长边的最小值。n,k≤15000。题解:”最长边的最小值“经常可以用最小生成树解决,因为生成树里的每一条边都是可取的最小边,求完生成树之后就是经典的倍增应用:求lca的时候顺便维护一下边权最大值即可。代码: 1 #include <cstdio> 2 #include ...

2016-11-15 21:53:00 101

转载 bzoj1510[POI2006]Kra-The Disks*

bzoj1510[POI2006]Kra-The Disks题意:一个瓶子有n个节,每个节有一个宽度。现在要从上往下扔m个盘子,如果盘子的下一个位置宽度比该盘子的宽度小则盘子会停在这个位置。问最后一个盘子会停在那个位置。n,m≤300000。题解:首先利用单调栈去掉那些没用的节,之后对于每个盘子,二分大于等于它宽度的第一个节,尝试它能否再往下掉到无用的节,具体看代码。...

2016-11-15 21:40:00 105

转载 bzoj2208[Jsoi2010]连通数

bzoj2208[Jsoi2010]连通数题意:给一个有向图,每个点对答案的贡献为该点可达的点个数,求答案。n≤2000,m≤4000000。题解:听说暴力可过QAQ不过为了练tanjan还是写了常规写法。先缩点,接着对每个入度为0的点做dp,每个点维护一个bitset。对于当前点,先将该点对应bitset的该点位置置为1,之后将这个bitset与该点所有子节点的bi...

2016-11-15 21:24:00 115

转载 bzoj2678[Usaco2012 Open]Bookshelf*

bzoj2678[Usaco2012 Open]Bookshelf题意:给出一个序列,有两个元素ai、bi,要求将一个序列分成几段,每段的bi和不能超过l,每段的代价为该段最大的ai,求一个方案使代价和最小。n≤100000。题解:首先方程为f[i]=f[j]+mx[j+1..i],sum[i]-sum[j]<=l。但这样会T。令g[j]=mx[j+1..i],则g...

2016-11-15 21:14:00 135

转载 bzoj1179[Apio2009]Atm

bzoj1179[Apio2009]Atm题意:给个有向图,每个点有个点权,有些点有酒吧。现在求一个人从任意一点出发获得点权的最大和。要求每个点的点权只能获得一次,且路径最后必须在酒吧结束,可以重复经过点和边。n,m≤500000。题解:tarjan缩点之后跑spfa,注意不能用dijkstra,因为求正权边的最长路相当于求最短路时有负权边。代码: 1 #in...

2016-11-15 20:29:00 114

转载 bzoj3391[Usaco2004 Dec]Tree Cutting网络破坏*

bzoj3391[Usaco2004 Dec]Tree Cutting网络破坏题意:给一棵树,问去掉哪个点后可以使剩下的每个子树大小都小于等于节点总数的一半。n≤10000。题解:dfs的时候求一下子树大小,以当前节点的父节点为根节点的子树大小为n-以当前节点为根节点的子树大小。代码: 1 #include <cstdio> 2 #includ...

2016-11-15 20:21:00 100

转载 最短路总结

背景:只是想来备份一下最近的代码,顺便总结一下三种最短路算法的应用。基础代码:dijkstra: 1 struct nd{int d,u; bool operator < (const nd &a)const{return d>a.d;}}; 2 int d[maxn]; bool vis[maxn]; priority_queue<nd...

2016-11-13 16:32:00 102

转载 bzoj2346[Baltic 2011]Lamp*

bzoj2346[Baltic 2011]Lamp题意:给出一个像下图一样的电路图,长为n,宽为m,求最少将几个"\"改成"/"或将"/"改成"\"使左上角和左下角联通。n,m<=500题解:如果某格是/,则左上角和右下角连边,长度为0,左下角和右上角连边,长度为1;如果某格是\,则左上角和右下角连边,长度为1,左下角和右上角连边,长度为0,然后求最短路即可。...

2016-11-13 16:01:00 129

转载 bzoj1342[Baltic2007]Sound静音问题*

bzoj1342[Baltic2007]Sound静音问题题意:给出一个n个数的序列,问有多少个长度为m的区间满足该区间的最大值与最小值的差≤一个定值。n≤1000000。题解:两个单调队列,一个维护区间最大值,一个维护区间最小值。代码: 1 #include <cstdio> 2 #include <cstring> 3 #i...

2016-11-11 20:08:00 101

转载 bzoj1339[Baltic2008]Mafia*

bzoj1339[Baltic2008]Mafia题意:匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控。对于每个车站进行布控都需要一定的代价,现在警方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的初始点到达目标点。n≤200。题解:每个点拆成两个点,边权为点权,原图中的边边权为正无穷,然后跑最小割。代码: 1 #include ...

2016-11-11 20:05:00 104

转载 bzoj4716假摔

bzoj4716假摔题意:给出一个矩阵,求这个矩阵中权值和第k小的长在xmin到n之间,宽在ymin到m之间的子矩阵。n,m≤1000,k≤250000。题解:首先求出长为xmin,宽为ymin的子矩阵放入优先队列,每次取出时如果该矩阵之前没有出现过(用set判重),则将其扩展并放入优先队列,输出第k个不重复的(这里指位置不重复的,权值可以相等)。代码: 1 ...

2016-11-11 19:43:00 98

转载 bzoj3526[Poi2014]Card*

bzoj3526[Poi2014]Card题意:有n张卡片在桌上一字排开,每张卡片上有两个数,第i张卡片上,正面的数为a[i],反面的数为b[i]。有m个操作,第i个操作会交换c[i]和d[i]两个位置上的卡片。每次操作后,你都需要判断,通过任意翻转卡片(把正面变为反面或把反面变成正面,但不能改变卡片的位置),能否让卡片正面上的数从左到右单调不降。n≤200000,m≤10000...

2016-11-11 19:35:00 154

转载 bzoj3296[USACO2011 Open] Learning Languages*

bzoj3296[USACO2011 Open] Learning Languages题意:n头奶牛,每头牛会一些语言,总共有m种语言。求需让某些奶牛学会的最小语言数使得任意两只奶牛直接或间接可以用同种语言聊天(比如a会语言1,b会语言1和2,c会语言2和3,d会语言3则他们两两可以交流)。n≤10000,m≤30000。题解:如果一头奶牛会某种语言,则将这头奶牛与这种语...

2016-11-11 19:29:00 90

转载 bzoj1090[SCOI2003]字符串折叠

bzoj1090[SCOI2003]字符串折叠题意:折叠的定义如下:1. 一个字符串可以看成它自身的折叠。记作S。2. X(S)是X(X>1)个S连接在一起的串的折叠。记作X(S)。注意括号可以嵌套。给出字符串,求折叠后字符串的最短长度。字符串长度≤100。题解:区间dp。f[i][j]=min(f[i][k]+f[k+1][j],f[i][k]+len(get...

2016-11-11 19:23:00 102

转载 bzoj1596[Usaco2008 Jan]电话网络*

bzoj1596[Usaco2008 Jan]电话网络题意:在一棵树中选最少的点建塔,使得每个点都有塔或相邻点有塔。n≤10000。题解:贪心。dfs时对于每个当前点,在dfs完它的所有子节点后如果它以及它的儿子以及它的父亲没塔,则在它父亲处建塔。代码: 1 #include <cstdio> 2 #include <cstring&gt...

2016-11-11 19:10:00 114

转载 bzoj4152[AMPPZ2014]The Captain*

bzoj4152[AMPPZ2014]The Captain题意:给定平面上的n个点,定义(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|),求从1号点走到n号点的最小费用。n≤200000。题解:结论:按某维坐标排序后,只有相邻两个点的距离才可能是这两个点的最小距离。故本题只要对所有点先按横坐标排序,将相邻的点连边,再对所有点按纵坐标排序,将...

2016-11-11 19:05:00 153

转载 bzoj1528[POI2005]sam-Toy Cars*&&bzoj1826[JSOI2010]缓存交换

bzoj1528[POI2005]sam-Toy Carsbzoj1826[JSOI2010]缓存交换题意:Jasio有n个不同的玩具,它们都被放在了很高的架子上,地板上不会有超过k个玩具。当Jasio想玩地板上的其他玩具时,他会自己去拿,如果他想玩的玩具在架子上,他的妈妈则会帮他去拿,当她拿玩具的时候,顺便也会将一个地板上的玩具放上架子使得地板上有足够的空间。他的妈妈知道孩...

2016-11-11 18:54:00 95

转载 bzoj2079[Poi2010]Guilds*

bzoj2079[Poi2010]Guilds题意:给一个图染色,要求每个图必须染上某个色同时与另外一个色的点有边相连,问可否满足要求。n≤200000。题解:直接上结论:除非有点没有与别的点相连,否则肯定能满足要求。代码: 1 #include <cstdio> 2 #include <cstring> 3 #include ...

2016-11-10 22:00:00 91

转载 bzoj2083[Poi2010]Intelligence test*

bzoj2083[Poi2010]Intelligence test题意:给出一个序列,m个询问,每次问一个序列是否为所给序列的子序列(可以不连续)。n≤1000000,m≤1000000,询问序列总长度≤1000000。题解:以元素的值为第一关键字,位置为第二关键字排序。接着对于每次询问,二分查找询问序列中元素在给出序列的最早出现次数,如果后一个数的最早出现次数大于等于...

2016-11-10 21:37:00 114

转载 bzoj3522[Poi2014]Hotel*

bzoj3522[Poi2014]Hotel题意:在一个树上求三个点两两距离相等的方案数。n≤5000。题解:枚举每个点作为中心点,求出每个子树的深度为i的节点大小,则目标是求某个深度的答案和。设第i个子树在某个深度的节点数为dep[i],令a1[i]=sigma(dep[j],j<=i);则取两个节点的答案a2[i]=dep[i]*a1[i-1],取三个节点的...

2016-11-07 14:30:00 128

转载 bzoj1717[Usaco2006 Dec]Milk Patterns 产奶的模式*

bzoj1717[Usaco2006 Dec]Milk Patterns 产奶的模式题意:John记录了n天的牛奶质量值。他想知道最长的出现了至少k次的模式(即一个连续子串)的长度。n≤20000。题解:求一个总哈希值,二分模式长度,枚举每个模式开始端点,获得它的哈希值,然后排序比较有没有至少k个相等。代码: 1 #include <cstdio>...

2016-11-07 14:22:00 106

转载 bzoj1124[POI2008]枪战Maf*

bzoj1124[POI2008]枪战Maf题意:有n个人,每个人手里有一把手枪。一开始所有人都选定一个人瞄准(有可能瞄准自己)。然后他们按某个顺序开枪,且任意时刻只有一个人开枪。因此,对于不同的开枪顺序,最后死的人也不同。求最小死人数和最大死人数。n≤1000000。题解:最小死人数:先找到所有入度为1的点放入队列,让它们活,接下来它们杀人,之后又出现入度为1的点,将其...

2016-11-07 14:16:00 108

转载 bzoj1109[POI2007]堆积木Klo*

bzoj1109[POI2007]堆积木Klo题意:n个数,第i个数为ai,现在要移走一些数,使得移走后有最多的数位于它对应的位置上。求移走的数。n≤100000。题解:dp方程:f[i]=f[j]+1(i>j,a[i]>a[j],a[i]-a[j]>=i-j即a[i]-i>=a[j]-j),而第一个限制条件是可以由后两个限制条件所推出,因此只要在...

2016-11-07 14:07:00 93

转载 bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换*&&bzoj1692[Usaco2007 Dec]队列变换*

bzoj1640[Usaco2007 Nov]Best Cow Line 队列变换bzoj1692[Usaco2007 Dec]队列变换题意:有一个奶牛队列。每次可以在原来队列的首端或是尾端牵出一头奶牛,把她安排到新队列的尾部,然后对剩余的奶牛队列重复以上的操作,直到所有奶牛都被插到了新的队列里。这样得到的队列,就是FJ拉去登记的最终的奶牛队列。 求对于给定的奶牛们的初始位置...

2016-11-04 21:59:00 121

转载 bzoj2590[Usaco2012 Feb]Cow Coupons*

bzoj2590[Usaco2012 Feb]Cow Coupons题意:市场上有N头奶牛,第i头奶牛价格为Pi。FJ有K张优惠券,使用优惠券购买第i头奶牛时价格会降为Ci,每头奶牛只能使用一次优惠券。FJ想知道花不超过M的钱最多可以买多少奶牛。n≤50000,m≤10^14。题解:先按ci升序排序,把前k头买下来(如果可以的话)接着把剩下的牛按pi升序排序:如果当前奶牛...

2016-11-04 21:46:00 110

转载 bzoj3011[Usaco2012 Dec]Running Away From the Barn*

bzoj3011[Usaco2012 Dec]Running Away From the Barn题意:给出以1号点为根的一棵有边权的树,问每个点的子树中与它距离小于l的点有多少个。树的大小≤200000。题解:每个节点维护一个带标记可并堆,dfs时对子节点的堆加上当前节点到该子节点的边权,之后令其与当前节点的堆合并。代码: 1 #include <cs...

2016-10-30 15:48:00 98

空空如也

空空如也

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

TA关注的人

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