自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

智障

Wiskey

  • 博客(136)
  • 资源 (15)
  • 收藏
  • 关注

原创 推荐几本书

在大学毕业前立志要读完的四本书:《模式分类》《人工智能——一种现代方法》《一种新科学》《神经网络与机器学习》现在感觉到压力山大了……顺便占个坑,不定期过来更新书单。

2014-09-09 13:56:42 1355 2

原创 Dandelion - Eclipse Lisp Plugin

Common Lisp没有一个比较简单易用的IDE,网上推荐使用的都是LispBox,但是基于Emacs编辑器,使得学习以及使用的门槛过高。Eclipse是一个非常强大的可任意扩展的开发环境,所以我们可以使用Eclipse 下的Lisp插件。两年前我就寻找过,但是没有找到合适的,至于我为什么不自己开发一个= =。(我好囧)。最近又找了一下,发现了一个Dandelion的项目,最近更新时间是20

2014-05-21 09:39:57 3687 5

原创 Codeblocks下配置OpenGL

要做图形学试验了,ge

2014-04-28 23:38:26 18829 9

原创 25个最佳SSH命令

任何一个系统管理员或站长对SSH都不会陌生,这个伟大的技术免去了我们跑去机房管理服务器,或者在远程连接服务器时时刻担心内容被窃取的心惊胆战。本文将为大家介绍25个最佳的SSH命令,如果您还没用过,那么有必要将它们记录一下。OpenSSH是SSH连接工具的免费版本。telnet、rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有

2013-11-28 23:25:11 13011 1

原创 Markdown导出成HTML,PDF格式

Markdown导出成HTML,PDF格式首先个大家推荐一个编辑器Markdownpad,大家可以到官方网站下载。导出PDF格式和其它一些强大的功能需要付费,但是基本的功能还是可以使用的,而且可以免费的导出HTML格式导出HTML在开始菜单中,导出html格式即可将HTML格式转化成PDF格式这个可以利用chrome浏览器,用浏览器打开导出的html文件

2013-11-09 23:28:38 14721 1

原创 HDU 4059 The Boss on Mars【容斥原理】

又是一个容斥原理,只是四次方求和的公式呵呵了。数学里面这类问题就是容斥原理么……时间太长了,竟然刚开始没有看出来,真囧!容斥类型的题目,见我博客的分类吧。#include #include #include #include #include using namespace std;typedef long long ll;#define mod 10

2013-11-04 22:15:18 1554

原创 HDU 4474 Yet Another Multiple Problem【BFS+一个判断技巧】

题意:0-9这十个数字里面的若干个数字组合出一个数,使这个数是N的倍数,求最小的这个这样的数,不存在的话输出-1。按照数的位数BFS,从小向大枚举就可以保证构造出来的数是递增的,如果不加判断就直接搜索的话,复杂度非常高。因此需要剪枝。优化方法:如果一个数%N==0,那么这个数就是N的倍数。在没有找到的前提下,如果A%N==B%N,而且A因此我们只需要维护组合出来的数%N的值即可,如果在

2013-10-06 20:14:10 3395

原创 HDU 4294 Multiple【BFS】

结论:任意一个N的的倍数,都可以由最多两个数组组合而成。证明:AAAA...A % N的值是有限的,那么一定存在个数不同的AA..A组合%N之后的值和它相同。那么这两个组合相减就是N的倍数了。以上证明只能说明最多需要两个,并不能说明由两个数组成的N的倍数一定是AAAA..A0000的形式,理解一下就可以了。那么这个题目就可以先判断由一个数组合,然后判断两个数的组合即可。方法是B

2013-10-06 20:02:17 1345

原创 HDU 4288 Coder 【线段树+离线处理+离散化】

题意略。离线处理,离散化。然后就是简单的线段树了。需要根据mod 5的值来维护。具体看代码了。/* 线段树+离散化+离线处理*/#include #include #include #include using namespace std;typedef long long ll;#define N 100010ll sum[N<<2][5];int a[

2013-10-06 13:36:19 1746

原创 HDU Ads Proposal 【树状数组】

题意:N个customer,M个advertisement,每个ad只属于一个cus,每个ad都有一个点击量和一个长度值。现在对于每个询问,求出所有cus的前k大点击量的广告的总长度。对于每个ad,求出他在所属的cus里面的排名,这个一边排序就可以了。将长度累加到对应排名上面。树状数组维护查询就可以了。#include #include #include us

2013-10-04 19:51:39 1318

原创 HDU 4000 Fruit Ninja 【树状数组】

题意:给1-N的一个排列,找出所有的(x, y, z) 使得x 题解:对于每个x,只需要找到比x靠后,而且比x大的数的个数,这样的组合数为:n*(n-1)/2这里面有重复的情况:i 树状数组统计x之前出现的比x小的个数,剩下的就全部可以算出来了。#include #include #include #include using namespace std

2013-10-04 18:15:14 1269

转载 C语言的静态函数

转载自:http://www.cnblogs.com/JessonChan/archive/2010/12/12/1903983.html当一个源程序由多个源文件组成时,根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。1 内部函数(又称静态函数)如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为

2013-09-29 13:09:27 1131

转载 8086 寄存器

链接:http://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html博主写的很好,看完之后绝对可以明了的。自己也做一个笔记,算是精简版本的。8086  CPU 中寄存器总共为 14 个,且均为 16 位 。即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14

2013-09-10 20:38:19 1142

原创 HDU 4712 Hamming Distance [预处理+暴力]

惨不忍睹,不能多说了。直接看代码吧。。。就是暴力了。。。#include #include #include #include #include using namespace std;#define N 100020int a[N<<1], n;vector c[22];int f[1<<21];int main() {#ifndef ONLINE_JUDG

2013-09-09 11:23:17 2559

原创 POJ 3233 Matrix Power Series 【矩阵快速幂,矩阵加速】

| A+A^2+A^3+…Ak | |A A| (k-1)次方 | A || | = | | | || E | |0 E| | E |A是输入的矩阵#include #include #include #include

2013-08-21 11:11:40 1062

原创 TC SRM 570 div2 1000【Tree,树上统计】

将一棵树上的所有结点分成两个集合(其中一个集合可以为空),但是“人类”的集合必须是联通的。问总共有多少种分法。将整棵树确定一个根,那么每个结点被选择之后,其父节点不被选择(此节点是个分界)的方案数=(所有儿子的方案数+1)的乘积。(+1表示当前子树的所有儿子都不选择)最后将所有结点作为分界的结果累加起来即可,然后+1(所有结点都不被选择)const int N = 55;c

2013-08-20 20:29:33 1150

原创 CF 294E Shaass the Great【Tree】

将树的一条边移掉,然后将这条边重新连接两棵子树,使新树:两两点对的距离之和最小。枚举删掉的边,对每种情况都计算一下,然后取最小值。对于每种情况,假设左子树的两两点对和为S1,右子树为S2,子树结点个数分别为C1,C2,两个子树到树根的距离和分别为R1,R2,当前枚举的边的权值为w,则整棵树的代价为:两棵子树的点对和+经过当前边的点对和S1 + S2 + (C1 + C2)*w +

2013-08-19 22:19:59 1242

原创 BZOJ 2599 [IOI2011]Race【Tree,点分治】

给出N(1 点分治,这道题目和POJ 2114很接近,2114是求是否存在长度为K的边,但是那个K比较大。但是这道题目的K比之小了10倍。1. 用V[i]表示到当前树根root的路径长度为i 时的点(赋值为root结点即可),这样就可以用来判断两条到根的路径长度之和是否等于K:    结点a的root的距离为i,结点b到root的距离为j,处理完a之后会得到V[i] = root,那么

2013-08-16 17:09:29 3637

原创 POJ 2114 Boatherds【Tree,点分治】

求一棵树上是否存在路径长度为K的点对。POJ 1714求得是路径权值刚开始我以为只要在分治过程中出现过长度为K的就算是找到了,其实不然,因为可能是相同子树里面的两个结点,这个结果显然是错误的。#include #include #include #include using namespace std;struct node { int v, l; node(

2013-08-16 14:53:17 4032 1

原创 HDU 4676 Sum Of Gcd【数论,数据结构(分块)】

静态区间查询,没有更新操作,瞬间就想起来了哪个O(n*sqrt(n))的做法。关键是区间转移的时候不会处理了,只能说数学拙计了……对于此类问题的时间复杂度分析,详见:http://blog.csdn.net/yang_7_46/article/details/9618637买一送一,以一场多校的题目是题解给的是树状数组,其实也可以用这个算法水过,时间也挺快。http://blog.cs

2013-08-15 21:10:56 2971 1

原创 HDU 4679 Terrorist’s destroy【Tree】

给一棵树,每条边上都有一个权值,去掉树上任意一条边之后,分成两个子树,两个子树的最长路与这条边上的权值相乘,的到一个乘积。问去掉那一条边可以使这个乘积最小。首先找到树上的最长路,那么删边的时候有两种情况:1. 这条边是最长路上的边2. 这条边不是最长路上的边对于第一种情况,很容易计算出乘积。对于第二种情况,只需要计算出被分成的两个子树里面的最长路径长度即可,这个可以预处理一下。

2013-08-15 19:23:47 2087 2

原创 POJ 1987 Distance Statistics【Tree,点分治】

这道题目和POJ 1741基本一样了。树上的分治。此类算法参考论文:09年国家集训队论文《分治算法在树的路径问题中的应用——漆子超》#include #include #include #include using namespace std;#define N 40005struct node { int v, l; node() {};

2013-08-14 20:22:52 1929

原创 POJ 1741 Tree【Tree,点分治】

树上的算法真的很有意思……哈哈。给一棵边带权树,问两点之间的距离小于等于K的点对有多少个。将无根树转化成有根树进行观察。满足条件的点对有两种情况:两个点的路径横跨树根,两个点位于同一颗子树中。如果我们已经知道了此时所有点到根的距离a[i],a[x] + a[y] 在进行分治时,为了避免树退化成一条链而导致时间复杂度变为O(N^2),每次都找树的重心,这样,所有的子树规模就会变的很小

2013-08-14 16:27:47 17409 4

原创 POJ 1655 Balancing Act【树的重心】

这个题也很裸了……不多说。#include #include #include #include using namespace std;#define N 20010int s[N], f[N], n, root;vector g[N];void getroot(int now, int fa) { int u; s[now] = 1; f[now]

2013-08-14 14:54:34 1268

原创 SGU 134 Centroid【树的重心】

树的重心。递归求解即可。#include #include #include #include using namespace std;#define N 16100vector g[N];int n, cur, s[N], f[N];void getroot(int now, int fa) { s[now] = 1; f[now] = 0; int

2013-08-14 11:01:21 1109

原创 HDU 4666 Hyperspace【最远曼哈顿距离+优先队列】

这个题是动态的求最远曼哈顿距离。做法和POJ 2926 Requirements一样,都是通过二进制枚举符号的情况。每插入一个节点都要询问最大值和最小值,因此用一个优先队列或者堆维护就可以了。#include #include #include #include #include using namespace std;#define N 60010#define i

2013-08-14 08:56:40 1858

原创 POJ 2926 Requirements【最远曼哈顿距离】

n个5维坐标的点,求这n个点中曼哈顿距离的最大值。暴力枚举肯定超时。只考虑二维空间上两个坐标之间的曼哈顿距离(x1, y1) 和 (x2, y2),|x1-x2| +|y1-y2|去掉绝对值符号后共有下列四种情况(x1-x2) + (y1-y2), (x1-x2) + (y2-y1), (x2-x1) + (y1-y2), (x2-x1) + (y2-y1)转化一下:(x1+y

2013-08-13 20:54:06 5366 4

原创 POJ 3691 DNA repair【AC自动机+DP】

只能说这道题目的数据好强啊,以前写的自动机都是有缺陷的但是可以过题,这次被坑大发了……呜呜f(i, j)表示长度为i的串,到j状态时需要更改的次数。f(i, u)  =  min(f(i, u), f(i-1, j) + (s[i] != k))u是状态j的子状态。#include #include #include #include using namespace

2013-08-13 17:07:50 1040

原创 HDU 2825 Wireless Password【AC自动机+DP】

给m个单词,由这m个单词组成的一个新单词(两个单词可以重叠包含)长度为n,且新单词中包含的基本单词数目不少于k个。问这样的新单词共有多少个?m很小,用二进制表示新单词中包含基本单词的情况。用m个单词建立AC自动机,可以求出所有单词之间相互包含的情况,AC自动机的后缀特性(每个结点的失配边指向新结点,新节点到trie树根的字符串是当前节点字符串的后缀)。动态规划:f(

2013-08-12 14:03:46 1144 1

原创 POJ 1625 Censored【AC自动机+DP+大数】

给n个字母,构成长度为m的串,总共有n^m种。给p个字符串,问n^m种字符串中不包含(不是子串)这p个字符串的个数。将p个不能包含的字符串建立AC自动机,每个结点用val值来标记以当前节点为后缀的字符串是否包含非法字符串(p个字符串中的任何一个)。状态转移方程:f(i, j)  += f(i-1, k)  f(i, j)表示长度为i的字符串,结尾为字符j,方程j和k的关系可以从自动机中

2013-08-11 16:05:08 2368 1

转载 C++大数模板 BigInteger

网上搜集的一份写的灰常漂亮的大数模板。Mark之~~~~看不懂的自行补脑了 +_+#include #include #include using namespace std;struct BigInteger{ int A[25]; enum{MOD = 10000}; BigInteger(){memset(A, 0, sizeof(A));

2013-08-11 10:56:07 8770

原创 POJ 2778 DNA Sequence【AC自动机+矩阵快速幂】

#include #include #include #include #include #include using namespace std;typedef long long ll;struct AC_Automata { #define Nn 102 #define M 4 int ch[Nn][M], val[Nn], f[Nn], last[

2013-08-10 21:36:32 2965 2

原创 HDU 4664 Triangulation【博弈论】

一个平面上有n个点(一个凸多边形的顶点),每次可以连接一个平面上的两个点(不能和已经连接的边相交),如果平面上已经出现了一个三角形,则不能在这个平面上继续连接边了。现在总共有N个平面,每个平面上都有若干点。(就是有N个相同的游戏同时进行了)。想法很单纯,就是计算出每一个平面上游戏的sg函数值,然后求Nim和就哦了。sg函数暴力求法:一个平面上连接点时,不能连接已经有边的顶点

2013-08-09 21:08:16 1784 1

原创 HDU 4661 Message Passing 【Tree】

题意:给一棵树,每一个结点都有一个信息,每一个时刻,某一对相邻的结点之间可以传递信息,那么存在一个最少的时间,使得所有的节点都可以拥有所有的信息。但是,题目不是求最短时间,而是求最短时间的情况下,有多少种传递方式:某一时刻传递信息的双方不一样则认为是不同的传递方式。(表述的不是很清楚,自己看原题了)容易的出,最短的时间内,当然是每个节点将自己的信息想外传出去一次,并且接受一次信息,

2013-08-09 19:45:15 1821

原创 编译器手工开栈

做题的时候经常遇到深度递归的,当然,可以改成非递归形式。如果写成递归形式会爆栈,所以可以用手工扩展栈。微软的编译器(C++)#pragma comment(linker, "/STACK:102400000,102400000")G++ int size = 256 << 20; // 256MB char *p = (char*)malloc(size) +

2013-08-09 12:51:38 7291

原创 ZOJ 3430 Detect the Virus 【AC自动机+解码】

解码的那些事儿,不多说。注意解码后的结果各种情况都有,用整数数组存储,char数组会超char类型的范围(这个事最蛋疼的啊)建立自动机的时候不能用0来判断结束。#include #include #include #include #include #include using namespace std;vector ans;struct AC_Automata

2013-08-08 09:57:20 1338

原创 HDU 3065 病毒侵袭持续中

询问每个模式串在文本传中出现的次数。文本串中出现的字符不一定都是大写字母,只需要在匹配的时候,对文本串进行特殊处理,将连续的大写字母段当成合法的一个文本串即可。然后……就是简单的统计了。#include #include #include #include #include #include using namespace std;int

2013-08-07 16:42:50 914

原创 HDU 2896 病毒侵袭 【AC自动机】

HDU 2222 仅仅求出了和文本串匹配的模式串个数,本题要求求出匹配的模式串的编号。不同的部分在代码中的注释部分。#include #include #include #include #include #define MAX_NODE 60005#define MAX_CHILD 130using namespace std;vector ans;class

2013-08-06 11:55:12 1240

原创 HDU 2222 Keywords Search 【AC自动机模板】

询问有多少个模式串出现在了文本串里面。将模式串插入Trie树中,然后跑一边AC自动机统计一下就哦了。献上一份模板。#include #include #include #define MAX_NODE 240005#define MAX_CHILD 26using namespace std;class AC_Automaton {public: int c

2013-08-06 10:30:49 2792 1

转载 博弈论总结

有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。   

2013-08-06 09:15:23 1167

Paradigms of artificial intelligence programming

Peter Novig的《Paradigms of artificial intelligence programming》

2014-05-23

OpenGL库文件

Codeblocks下面配置OpenGL所需的正确的库文件libglut32.a,网上提供的编译好的都是dll的库,编译器无法链接,这里面的是好使的。配置文章参见:http://blog.csdn.net/yang_7_46/article/details/24674849

2014-04-28

浅谈随机化思想在几何问题中的应用

国家集训队论文 浅谈随机化思想在几何问题中的应用 随机增量算法 模拟退火算法 计算几何

2013-03-03

模拟退火与遗传算法

模拟退火与遗传算法。在数值计算领域的应用。理论讲解,数学性质较强。

2013-03-01

模拟退火算法

各种搜索算法的简单概述。盲目搜索和启发式搜索。启发式搜索的方法:爬山法、模拟退火法、遗传算法、蚁群算法……

2013-03-01

划分树算法总结

划分树讲解。但是文中的代码有些地方有笔误,但是基本想法都是正确的。

2013-02-26

计算机导论-07

哈尔滨工业大学计算机导论的讲义——第七章

2011-10-03

计算机导论-06

哈尔滨工业大学计算机导论的讲义——第六章

2011-10-03

计算机导论-05

哈尔滨工业大学计算机导论的讲义——第五章

2011-10-03

计算机导论-04

哈尔滨工业大学计算机导论的讲义——第四章

2011-10-03

计算机导论-03

哈尔滨工业大学计算机导论的讲义——第三章

2011-10-03

计算机导论-02

哈尔滨工业大学计算机导论的讲义——第二章

2011-10-03

计算机导论-00

哈尔滨工业大学计算机导论的讲义——课程相关信息

2011-10-03

noip 教程(竞赛辅导)

这是关于Pascal的教程 不错的可以看看啊 很完善啊 这是noip 的教程

2010-02-09

空空如也

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

TA关注的人

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