自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

暗黑ZX Cyberwind

An AC a day keeps the doctor away

  • 博客(52)
  • 资源 (2)
  • 收藏
  • 关注

原创 树状数组的第n次学习笔记

树状数组能解决什么问题?树状数组能高效地维护前缀和,尤其是“查区间改点”类型的前缀和。 如果树状数组是c,原数组是a,那么c[i]表示的是a[i],a[i - lowbit(i)]…这些数的和。 树状数组能直接求的是1~x位置的和,也就是前缀和。区间的和是用前缀和减出来的。怎么做到的?树状数组的每一个位置管几个位置,位置x写成二进制的时候管最低那个1对应的那个数的位置。 比如...

2018-06-12 10:07:24 160

原创 KMP的第n次学习笔记

关于字符串的下标:建议都用从0开始的下标。给谁算next数组?给模式串(Pattern)算next数组。KMP保证的是母串(Text)一个一个字符来的时候永不后退,但模式串的位置是要经常变化的。千万不要去给Text串算next数组……即:应该是给pattern串构建自动机,而不是text串。text串要在这个自动机上运行。关于next数组:真正编程的时候,next数组并...

2018-04-30 18:10:46 219

原创 深层神经网络进行Gradient Check的时候注意delta的大小

神经网络的Backward Pass实现是比较容易出错的,一个不错的做法是实现一个神经网络之后,利用Numeric的方法计算一个粗略的梯度,和你实际上算出来的梯度进行比对,如果差的不多,就说明你实现对了。前两天做CS231n作业的时候遇到了一个特别奇怪的事,我实现了一个N层卷积层,之后跟M层FC-Relu层的简单神经网络,指定N=1,M=2之后,死活过不了Gradient Check,并且永远...

2017-02-16 20:07:29 1047

原创 在需要缓存的时候,谨慎使用python的负下标

Python的下标从0开始,那么当我们不想把初项放到递推的数组中的时候,我们可以使用负下标来方便地初始化。比如设f(x)=f(x-1)+something,我们就可以写a = np.zeros(N)a[-1] = some_initial_valuefor i in range(N) a[i]=f(a[i-1]) + something这样就避免了单独对a[0]进行初始化。但是这样有一个

2017-02-14 16:33:51 1131

原创 Split函数,正则表达式与空字符串

在处理CSV文件的时候,我们总是要用Java/Scala的Split函数,但是如果CSV文件的某一行用空格的话,split函数可能不会返回我们想要的结果;比如stackoverflow上的一个例子:"elem1, elem2,,".split(",") = List("elem1", "elem2") 我们会发现最后的一个空格没有了;而在处理CSV的时候,我们希望得到的结果是 "elem1, e

2016-04-13 13:22:44 991

原创 从GDI到Direct2D:贴图

距离上一篇文章更新已经很长时间了,那个游戏也做完了,能跑起来,联网效果也很好(没错那是一个网络游戏),有时间的话也会考虑把怎么做一个稍具规模的游戏的笔记贴出来吧,这里我们讲怎么用Direct2D贴图。GDI里面,有一个类叫CImage,特别方便,想要读什么图片只需要Load一下,然后想画的时候,只需要说一句some_image.Draw(pDC, ...)就可以了,然而可惜的是D2D里面没有那么好用

2015-07-06 21:03:19 2147 1

原创 微软2016校招笔试 第二场部分题目个人思路

A. Lucky Substrings这道题并不难,由于字符串长度只有100,那么它的子串肯定不超过1w个,枚举出所有字串都是没有问题的,至于检验一个子串里面不同的字母数量是不是斐波那契数,我们只需要事先把斐波那契数列小于1w的项都生成出来,然后枚举一个子串之后,统计出不同字母的数量(边找边统计,如果当前字母之前出现过就不加,如果没出现过就记住并+1),去这个里面找就行了。斐波那契数列推不了几项就到

2015-04-25 20:10:48 892

原创 微软2016校招笔试 第一场部分题目个人思路

嗯……第一场当时还不知道报名,第二场报上了,拿了250/400,果然分如其人…… 这里包括的是第一场的ABC题,第二场的AB题的题解(这些都是自己AC了的),第一场的D和第二场的C至今仍然在WA,不知道怎么回事,到时候也讲讲思路求指点吧。第一场A. Magic Box这道题并不难做,唯一需要注意的是cx,cy和cz,以及任意两个量的差之间是没有前后关系的(这个事情样例里也告诉你了),所以比较简单的

2015-04-25 11:04:55 1052

原创 NetBeans 去掉文本限制线(竖着的红线)

在宽屏机器上,看着那条竖着的红线非常不爽,一个简单的方法就能去掉它。据图找到位置(图片转自http://blog.sina.com.cn/s/blog_4ed32a4001013a6k.html): 然后不要选择图中的“白色”,不然你在当前选中行仍然会看到一条白线割裂屏幕的;完美的做法是选择“定制”,然后选择RGB,把Alpha值调到0,这样这条线就完全透明了。

2015-04-14 17:34:20 2416

原创 从GDI到Direct2D:基本准备

最近在做个游戏,因为不能用游戏引擎,所以一开始就选了MFC+GDI的组合,毕竟CImage类是相当好用的,结果发现游戏竟然在还没有加什么功能的时候就只能跑到30帧出头,我觉得有点悬,将来如果加上更多的功能的话,一旦卡到30帧以下就没法忍了。所以我去学了一下Direct2D,这个传说当中的GDI替代品。网上现在Direct2D的资料不是很多,其中我感觉MSDN的几个样例比较适合新手入门,上面的例子都是

2015-04-05 21:17:43 3074

原创 一个向Visual Studio的输出窗口上输出文字的好用函数

在调试控制台程序的时候,我们经常使用printf来调试,虽然断点也是一个有力的工具,但是有的时候使用printf会显得更为直观。但是如果是图形程序的话,printf就没法使用了。这个时候很多人会选择在绘图函数里面把需要监视的变量画出来,这样非常费时费力。其实Visual Studio给我们提供了一个“控制台”,就是那个会在生成程序时给你报错的那个输出窗口,你是可以在上面输出文字的;具体来讲,这个函数

2015-04-02 20:52:05 3041

原创 C++中类的static静态变量的定义和初始化方法

C++里面的static类型很有用,它能代表对于整个类都起作用的一个参数,但是它的声明和初始化方法有点难以理解,在此记录一笔。声明很简单,只要在头文件里声明即可,比如:class CPlayer{ static float frame_time;}注意不能在声明里面初始化; 那么在哪初始化呢?正确的姿势是在cpp当中,在所有函数体之外(全局区域)初始化,并且不要static关键词,还需

2015-04-02 20:44:57 1468

原创 Android绘图级动画

在Android中,给一个View加动画是很简单的,但是有的时候我们是希望在绘图的时候加动画,这个时候单独弄一个View显然是很累赘的,怎么办呢?一个典型的方法是这样的:class MyView extends View { void startAnimator() { ValueAnimator animator = ValueAnimator.ofFloat

2015-03-12 21:07:18 575

原创 Java的函数到底是传值?传引用?还是……

本文内容总结自: http://blog.csdn.net/null____/article/details/7893360接触过编程的人大部分都写过swap函数,这个函数在C/C++里面非常好写:void swap(int &a ,int &b){ int temp; temp = a; a = b; b = temp;}但是Java里面就没那么简单了,因为J

2015-03-11 20:48:45 466

原创 POJ 1486:二分图匹配的必须边

题目大意:给定若干个矩形,以及

2014-11-16 13:16:16 502

原创 MFC笔记:GDI+贴图、双缓冲绘图、向屏幕上输出文字

CImage类是一个非常有用的类,利用它可以非常简单地shixian

2014-11-15 17:50:55 3710

原创 HDU 5072:同色三角形,容斥原理,预处理的顺序

谨以此题纪念逝去的银牌……题目大意:给定N个正整数,互不相同,

2014-11-13 21:06:52 660

原创 Codeforces 482B 线段树与离线区间加和问题

题目大意是说,请你构造一个长度为n的数列,满足给定的

2014-10-29 16:54:46 724

原创 HDU 5047:JAVA输入输出的正确姿势

能用BigInteger耍赖是JAVA的一大特色,但是如果用我们熟知的输入

2014-09-28 11:14:46 651

原创 HDU 5031:看脸的DFS

我仍然觉得这道题十分的不科学……题目是说你有一个

2014-09-22 11:20:44 897

原创 ZOJ 3814:模拟和状态压缩BFS

这题绝对是一个大坑……题意是,有一个拼图有9块,每一块的四条边都可能有齿轮。每次你可以选择

2014-09-11 18:22:40 1089 2

原创 HDU 4819:单点更新,区间查询的二维线段树

我越来越觉得之前自己的代码写的就跟shi一样……题意很简单,矩阵中指定一个方形

2014-09-05 16:01:52 663

原创 POJ 3525 二分答案,推进多边形和半平面交

题目在问这样一个问题:给定一个凸多边形,找到一个

2014-09-02 16:16:00 738 1

原创 HDU 4979: 更好的DLX模板 + 打表

本题构造矩阵并不难,用所有可能出现的组合当列,用所有可能买到的组合当行,然后paoyige

2014-08-29 11:08:23 635

原创 POJ 3335 半平面交与多边形的核

半平面,指的就是一条直线把一个平面分成了两个半平面…… 如果

2014-08-26 15:44:37 827

原创 POJ 1873 & 1228 凸包和稳定凸包

凸包指的是这么一件事:pin

2014-08-26 15:20:22 576

原创 Android重绘式绘图

我一直都没有太搞明白Android待

2014-08-24 15:02:43 784

原创 Android开发手记:Socket网络通信

这个系列的文章就是为了防止以后自己开发的时候忘了怎么回事,提醒自己用的……由于自己Android开发非常非常菜,所以

2014-08-24 14:34:06 860 1

原创 POJ 2074 视线问题

一开始看错了题意,把“不能完全看见” 错看成了 “完全不能看见”, 结果样例

2014-08-22 13:43:22 615

原创 ACM练级日志:POJ 2318 叉积的简单应用

最近开始学习计(keng)算(die)几何,第一道入门题就是这道了。本题最核心的问题,就是如何判断一个点在直线(线段)的什么位置。这一点叉积可以很容易地做到。设直线(线段)的向量为S->E, 询问点为P, 那么我们只需要计算一下 S->P x S->E, 如果大于0,说明S->P 顺时针旋转会达到S->E, 等于0说明就在直线上,小于0说明它需要逆时针旋转才能达到S->E。 

2014-08-09 22:33:38 594

原创 ACM练级日志:POJ 2886 约瑟夫环,线段树和反素数

我昨天才知道模拟约瑟夫环是可以用线段树来解的……不妨假设总共有N个人,他们的编号是1~N(这个编号很重要,影响到后面的推导)怎么解呢?我们用一棵线段树,每个节点记录一下这个区间还剩下多少人,一开始当然就是R-L+1个人了。然后我们要做的事情就是,每次先求出这次要出列的“绝对位置”,然后用线段树查一查这个绝对位置上站的是谁。所谓“绝对位置”,就是1~N,不会变的,比如

2014-08-09 22:32:34 607

原创 ACM练级日志:最大流的FF算法、匈(N)牙(T)利(R)算法

最大流的FF算法似乎是最简单的,即使是之前没怎么接触最大流的我也照着标程两下就会了。FF算法大约是这么一个过程:不断地寻找源点到汇点的增广路,找到一个是一个,找不到了,那就已经是最大流了。找增广路的时候,假设我在s,我就看看我能看见谁,看他走过没有,能不能给我带来增广路,如果能的话就太好了,我也回答我能带来增广路,同时一个流就产生了。当然也要弄一条反向边,方便这个算法后悔。

2014-08-09 22:30:10 1836

原创 ACM练级日志: CodeForces 414C 归并排序、逆序数和栈内存

时间一长居然连归并排序都忘了怎么写了…… 偏偏这玩意还不能用STL,必须手写…… 而且这道题又是递归又是取反又是求和,真心麻烦,费了我一个上午才弄出来……期间还遇上了各种各样的问题。记录一下归并排序:开数组的时候没什么特殊情况就开在全局变量里,然后tmp数组也可以开在全局变量里,由于栈内存的限制,不要把局部变量开得很大,通常栈内存只有可怜的16MB,稍微奢侈一点就爆了……而且爆

2014-08-09 22:29:28 867

原创 ACM练级日志:带权并查集与食物链

最近终于干掉了高中两年都没有搞定的题目:食物链,就是那个A吃B,B吃C,C吃A这道NOI的经典题。当年自己写了200多行,把自己都写碎了,也没弄出来,最近学习了带权并查集,终于搞定了这道题。首先说说并查集为什么能带权值……  原先,最基本的并查集是维护等价关系了,如果A跟B处于同一集合,那说明A和B就是等价的。但是如果给并查集每个边覆上权值的话,那么并查集就不光能表示等价关系,

2014-08-09 22:28:46 720 1

原创 ACM练级日志:HDU 4735(ACM 成都网络赛) 重复覆盖与DLX

今天费了一下午+一晚上的劲,终于把重复覆盖问题给解决了。作为这算法的牺牲品的就是成都网络赛让我知道DLX这东西存在的那道题,HDU 4735。这也是第一次尝试独立对问题构造矩阵然后调用DLX得出结果的题目。题目是说有一棵树,树上每个节点有一个男孩或女孩,每个男孩能保护距离为D以及D以内的节点,你可以任意交换两个节点的孩子,最后要使得所有女孩都被保护。问最少需要交换多少次。实际上

2014-08-09 22:26:32 642

原创 ACM练级日志:可持久化线段树初级-POJ 2104

近期决定把数据结构技能树继续开发下去,学习更深入层次的三项技能:可持久化线段树、动态树、树链剖分。然后那天看了看动态树,碎了,然后就去看可持久化线段树了……简单地说,这玩意是一个可以保存修改的历史版本的线段树。其本质想法是:对线段树每改一次,就建一棵新的树,保留原来的版本。这听起来挺疯狂的,但是却有很令人意想不到的用处:比如POJ 2104这个题,普通线段树是无力的,但是如

2014-08-09 22:25:16 616

原创 ACM练级日志:POJ 3074 数独与DLX

各位还在使用百度空间的同学们,请原谅最近被我刷屏…… 数独是DLX建模的最经典应用,它最好地示范了“行=决策,列=约束”的建模方法,配合快速的DLX深搜,使它成为了目前最快的求解数独的方法。每行是一个决策,在数独里做的决策,就是每一个格填几,也就是说,你要从81*9=729种决策中挑出81种构成一个数独的解,于是我们就会有729行,每行都是一个决策。但是这也

2014-08-09 22:24:51 660

原创 ACM练级日志:POJ 3740 与Dancing Links

感觉自己搜索能力还是不够,前些日子记得有个地方出过个题,不会做,一查解题报告发现跟个叫什么Dancing Links的玩意有关,于是就去查了查,然后发现这玩意似乎有点碉……刚刚AC掉模板题,做个记录…Dancing Links,简称DLX,用于给矩阵精确匹配问题的DFS过程大幅度剪枝,甚至具有自动剪枝的作用。所谓矩阵精确匹配问题,就是你有一个矩阵,里面元素不是0就是1,然后希望

2014-08-09 22:23:11 586

原创 ACM练级日志:ACM2013 南京网络赛

这篇日志是用来反省用的…… 本场比赛我们总共A3题,我1题,ztb2题,但是因为我的博弈树搜索卡了,导致我们没能上第四道题,虽然前面三题很顺利,但是这致命的一题还是卡死了我们的队伍。先说说题吧,1004顺利搞定了,它的题意是这样的:有很多人,他们之间某些人是认识的,但是认识不具有传递性,而且认识是单向的;现在问能不能把他们分成两组,使得每组里面组员两两之间都互相认识。

2014-08-09 22:19:59 596

原创 ACM练级日志:HDU 4286 STL-双端队列 以及Presentaion Error

干掉了去年天津赛区的一道题,还是很爽的,去年用双向链表没有做出来,今年用双端队列做出来了。想法非常简单,把整个序列切成三段,左边一段,L-R一段,右边一段,这样移动指针就是队列之间把队头/队尾元素互相踢来踢去的问题了。增加删除元素都很简单,至于反转,只需要用一个bool记录当前是否是反转状态,然后在增加删除移动时分类讨论即可。双端队列在STL里有,我用了STL里的是因为

2014-08-09 22:19:06 704

北工大ACM研讨课第一次课件

北工大ACM研讨课第一次:基本入门,线性数据结构 包括良好的编程风格、编程习惯、时空复杂度的估计、栈、链表、队列的定义和使用 图不是原创的,来源于薛矛大牛的PPT

2014-03-27

范浩强_wc2012谈谈各种数据结构

……看之前要先orz一下…… 大概他是可持久化编程的提出者?

2013-10-30

空空如也

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

TA关注的人

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