首先,在python官网下载MySQL-python的最新版本,下载zip的,解压之后,进入目录,然后 python setup.py install 如果是安装到venv虚拟环境里,需要首先进入到具体的操作目录,然后进入环境中,之后再安装setup.py . venv/bin/activate 之后可能会遇到许多错误.. 错误1: sh: mysql_config: not foundTraceback (most recent call last): File "setup.py", line 15, in <module> metadata, options = get_config() File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config libs = mysql_config("libs_r") File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py",
发表于 2017-06-24 01:22:50 | 条评论 | 阅读次数:80
http://www.51nod.com/contest/problem.html#!problemId=1873 哇震惊了,竟然可以写的这么骚 # -*- coding:utf8 -*-import sysfrom decimal import *getcontext().prec = 1000 #设置小数点数a, b = raw_input().split()a, b = Decimal(a), int(b)ans = '{:f}'.format(a ** b)if ans[:2] == '0.': ans = ans[1:]while ans[-1:] == '0': ans = ans[:-1]if ans[-1:] == '.': ans = ans[:-1]print ans 直接把float转换成int竟然会有浮点误差!就算是刚读入的也不行 # -*- coding:utf8 -*-import sysa, b = raw_input().split()a, b = int(float(a)*1e6+1e-8), int(b)ans = str(a ** b)n = len(ans
发表于 2017-06-18 00:20:43 | 条评论 | 阅读次数:77
KMP 扩展KMP AC自动机 Fail树 trie图 manacher 后缀平衡树 最小表示法 后缀数组 后缀自动机 复习傻逼考试,头皮发麻,不如总结一下常见的一些字符串算法啊。 KMP 我们这里主要是为了处理出NextNextNext数组和FailFailFail数组。 Fail[i]Fail[i]Fail[i]表示,第Fail[i]Fail[i]Fail[i]个前缀是第iii个前缀的后缀。所以如果下标是从000开始的,那么有Fail[0]=−1Fail[0]=-1Fail[0]=−1,即对于第iii个前缀,不存在一个前缀jjj,是前缀iii的后缀。 对于KMP的NextNextNext数组,有这样的性质:Next[i]=Fail[i]+1Next[i]=Fail[i]+1Next[i]=Fail[i]+1 int Next[MX];void getNext(char *S) { Next[0] = 0; int n = strlen(S), j = 0; //j表示当前要与i比较的位置 for(int i = 1; i < n; i++) {
acm
发表于 2017-06-09 19:42:12 | 条评论 | 阅读次数:228
这必将是一条不归路~ git config --global user.name qwb #设置全局的用户名git config --global user.email 492859377@qq.com #设置邮箱号git init #在当前文件夹中初始化,之后会创建一个.git文件夹git add . #把整个目录中的文件都加入到缓存区,也可以指定文件git status #查看缓存区里的内容的变化git status -s #查看缓存区里的内容的变化,但是较为简洁git commit -m "描述" #把缓存区里的内容保存,并添加描述git commit --amend # 修改上一次的commit的commentgit rm --cached 文件 #从缓存区里删除文件,如果删除文件夹记得用-rgit log #查看commit的提交记录git log --oneline #显示一行的loggit reset --hard #回档到上一次的commitgit reflog #查看所有的修改记录,可以通过commited,配合reset回滚git branch #查看所有分支git check
git
发表于 2017-06-07 18:01:21 | 条评论 | 阅读次数:111
Queue Queue LifoQueue PriorityQueue __builtin__ list tuple set dictionary Queue 这一组容器最最主要的目的是用于多线程的处理。 Queue import Queueq = Queue.Queue()q.get() #front()+pop()q.put() #push()q.qsize() #获取大小q.empty() #判断是否为空q = Queue.Queue(Max) #设置队列的最大值q.get() #如果此时队列为0,则会阻塞直到有内容q.put() #如果此时队列满,则会阻塞到可以放q.get_nowait() #不拥塞获取,如果此时size为0,则会抛出异常q.put_nowait() #同理q.join() #等待线程,直到q队列里全部处理完q.task_done() #每次一个事件处理完时,就要运行一次这个,对于join里相当于事件数减1 LifoQueue 与Queue.Queue方法一模一样,只是改成了后进先出 PriorityQueue 还是一样,只是变成了优先队列 得注
发表于 2017-06-05 20:27:41 | 条评论 | 阅读次数:97
python的多线程编程实在是太简单好用了~ 下面介绍的这些都是threading模块中的内容 Thread Lock/RLock Condition Semaphore/BoundedSemaphore Event Timer local currentThread 总结 python的”伪多线程” 实例1.线程安全的队列 Thread 创建多线程的方法: 1.最简单的不带参数的方法 def MyThread(): print 'duoxiancheng'if __name__ == '__main__': th = threading.Thread(target=MyThread) th.start() while True: time.sleep(1) 2.带参数的方法 def MyThread(a, b): print a + bif __name__ == '__main__': th = threading.Thread(target = MyThread,args = (1, 2)) #th = threadin
发表于 2017-06-05 13:36:50 | 条评论 | 阅读次数:93
由于题目标题都过于暴力,被强行改了一波题目名,不要在意这些细节。。 A.大新闻 B.黑框眼镜 C.华莱士 D.谈笑风生 E.图样 F.图森破 G.五点共圆 H.续一秒 I.一颗赛艇 J.真正的粉丝 A.大新闻 假设最后移动完后,紧挨着的平行x轴的线段的端点为(a,b),(a+n−1,b)(a, b),(a+n-1,b)(a,b),(a+n−1,b) 我们能够证明,如果刚开始两个人,X1<X2X_1 < X _2X​1​​<X​2​​, 那么移动位置后,第一个人的x坐标还是会小于第二个人的x坐标,因为交换两者的x大小关系只会导致总步数更多。 答案就等于∑i=1n∣Xi+(i−1)−a∣+∑i−1n∣Yi−b∣\sum_{i=1}^n|X_i+(i-1)-a| + \sum_{i-1}^n|Y_i-b|∑​i=1​n​​∣X​i​​+(i−1)−a∣+∑​i−1​n​​∣Y​i​​−b∣ 所以X和Y可以单独算贡献,把X和Y都单独排序一下。 对于Y,很显然b取Y的中位数时,会取最小值。 对于X,不是那么明显,如果我们令Xi=Xi+(i−1)X_i = X_i+(i - 1
acm
发表于 2017-06-02 00:53:59 | 条评论 | 阅读次数:361
Copyright © 2017 - 2018 qwb's blog
blog.csustacm.com All Rights Reserved
Powered by qwb Contact me