- 博客(15)
- 收藏
- 关注
原创 Python乱码,编码,repr,encode,decode探究
#encoding:utf-8#用命令行执行import jsons = '百度'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
1691
转载 在Windows下安装pygraphviz
在Windows下安装pygraphvizby 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
1101
原创 DevC生成dll
dllwrap.exe: no export definition file provided.在编译选项上加--share,应该能正确生成。
2013-06-19 12:17:37
1108
原创 KMP算法
闲着没事想复习下KMP算法,自己推导了下,没想到搞了很久,整理记录下。先从一般的字符串查找算法推导。现在我们要在字符串S里面查找字符串D,则一般算法是position = 0WHILE position < S.length //枚举D在S中的位置position result = Match(S, D, position); //看在position位置上D能匹配S几
2013-02-19 22:40:42
457
原创 后缀数组 poj3693
罗大神论文里的题目……设 $ 为一个字符串, str = abcd$$$$cdef, 则可以看出答案是 $$$$ 那用 $$$$... 与 $$$... 比较最长前缀,肯定能得到$$$所以枚举 $ 的长度len和位置i,找以从 i 开始的后缀和以 i+len 开始的后缀的最长前缀但如果每个位置都枚举就太慢了,所以只枚举len, 2*len, 3*len 的位置。如果 $ 被这些
2012-05-31 00:41:26
728
原创 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
698
原创 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
1139
原创 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
420
原创 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
605
原创 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
537
原创 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
456
原创 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
634
1
原创 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
735
原创 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
788
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人