自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python乱码,编码,repr,encode,decode探究

#encoding:utf-8 #用命令行执行 import json s = '百度' print s # 输出环境为gbk,编码为utf-8,输出乱码 print s.decode('utf-8') # => 发现输出环境为gbk,自动转换 print s.decode('utf-8').encode('utf-8') # 输出环境为gbk,编码为utf-8

2015-03-29 01:23:24 1668

转载 在Windows下安装pygraphviz

在Windows下安装pygraphviz by cnDenis http://cndenis.iteye.com 2012年12月18日 用 pip 或是 easy_install 在Windows 下安装 pygraphviz,会出现OSError: Error locating graphviz.的错误。解决方法如下: 先下载并安装 Graphviz 。下载地址 h

2014-03-29 15:25:51 1084

原创 MySQL中文乱码

连接数据库后执行 set names 'gbk‘ 指明传入的命令编码为gbk,期望得到的查询结果编码为gbk。

2013-06-20 17:56:43 487

原创 DevC生成dll

dllwrap.exe: no export definition file provided. 在编译选项上加--share,应该能正确生成。

2013-06-19 12:17:37 1049

原创 KMP算法

闲着没事想复习下KMP算法,自己推导了下,没想到搞了很久,整理记录下。 先从一般的字符串查找算法推导。 现在我们要在字符串S里面查找字符串D,则一般算法是 position = 0 WHILE position < S.length //枚举D在S中的位置position result = Match(S, D, position); //看在position位置上D能匹配S几

2013-02-19 22:40:42 438

原创 后缀数组 poj3693

罗大神论文里的题目…… 设 $ 为一个字符串, str = abcd$$$$cdef, 则可以看出答案是 $$$$  那用 $$$$... 与 $$$... 比较最长前缀,肯定能得到$$$ 所以枚举 $ 的长度len和位置i,找以从 i 开始的后缀和以 i+len 开始的后缀的最长前缀 但如果每个位置都枚举就太慢了,所以只枚举len, 2*len, 3*len 的位置。 如果 $ 被这些

2012-05-31 00:41:26 711

原创 zerojudge 空罐 Cans

AC 自动机+DP……F[L][J]表示长度为L的基因在J的位置的个数。因为基因要变短,转移时要讨论L是否小于J位置串长度,转移到fail指针的位置。 (因为一个白痴错误debug了一个晚上……切记要转移病毒中的病毒啊!) #include #include using namespace std; #define CC(A,x) memset(A, x, sizeof(A)) #de

2012-05-18 21:54:14 670

原创 POJ 1625

AC自动机 + DP + 高精度 一开始开始犯蠢用矩阵相乘……好不容易搞定爆栈的问题又超时……后来发现还是直接dp的时间复杂度低…… 用 F[i][j] 表示 i 长的单词到 j 状态有多少种方法,则有 F[i][j] = sum{ F[i-1][k] } (k->j 可行 且j没有被标记) #include #include #include #include using nam

2012-04-03 16:01:17 1116

原创 AC自动机

AC自动机个人较浅的理解就是kmp的扩展,trie+kmp处理多个字符串匹配。 下面的是我的模板: 注:此模板根据notonlysuccess大牛的模板更改而来,代码更短,但速度有些下降,因为在init()内做了大量的的memset() #define FOR(i,n) for(int i=0; i<n; i++) #define CC(A,x) memset(A,x,size

2012-03-25 16:17:31 396

原创 AVL树 实现代码

自己写的一个AVL树模板(未加data,只有key),代码比较短小紧凑。 ps:算起来class的内容也不过50来行,我到觉得avl树比sbt实现简单多了……仅稍复杂于treap #include using namespace std; #define zero(arr) (memset(arr, 0, sizeof(arr))) const int MAXN = 2000000

2012-02-20 10:59:00 576

原创 POJ 3621

看到网上很多蛋疼的题解,忍不住自己发一份。 问题简单描述: 有图G,节点权值为Fi,  边权值为Ti, 求一回路,使sum(Fi) / sum(Ti) 最大。 变形一下,即求一实数ans,使得:G中存在一回路,回路上 sum(Fi) - sum(Ti)*ans >= 0, 且令这个ans最大。 将 sum(Fi) - sum(Ti)*ans >= 0 变形为 sum( Fi - Ti*an

2011-12-20 20:16:32 516

原创 POJ 3613 floyd+倍增

求经过n个点的最短路值。把矩阵相乘换成floyd,并做一些小改动,再用算快速幂的方法倍增计算即可。 code: #include #include #include #include #include using namespace std; #define INF     1000000000 #define CIR(n, m) for (int i=0; i

2011-12-12 14:26:06 440

原创 POJ2449 K短路

SPFA + A* 先计算反向图T为源点的最短路dis[]。再做A*, 状态h值为dis[X], g值便是走过的路径长度和, 第K次出的解即为所求最短路。 注意A*时不能有一般的最优剪枝,因为所求的是第K次出的解,剪枝会引起错误。 代码: #include #include #include using namespace std; #define     INF

2011-11-27 13:34:22 611 2

原创 poj 3225(线段树)

线段树,用 a*2 代表 a 这个点,a*2+1 代表  (a, a+1) 这一段。 五种操作都归结于区间 T 内外的覆盖和取反。具体情况参见一下代码。 #include using namespace std; #define LEN     (65536+1)*2 #define LS      (rt*2) #define RS      (rt*2+1) #define

2011-10-22 11:58:23 713

原创 hdu 3473(划分树)

划分树。 第二次写划分树,累的要死,回头发现第一次写的是错的……-_-||,看来poj2104的数据太弱了…… x取中位数ave,用sum[dep][i]保存划分的dep层前i个之和,查询时通过这个算出比ave小(大)的之和,计算即可。 提交后一直runtime error,无奈,最后还是借鉴了这篇文章:http://www.cnblogs.com/AndreMouche/archive/2

2011-10-03 01:14:52 768

空空如也

空空如也

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

TA关注的人

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