- 博客(75)
- 收藏
- 关注
原创 python的Matplotlib库入门学习总结
Matplotlib库是python中的功能全面的画图库,其基本用法如下:基本的plot函数用法如下:import matplotlib.pyplot as pltplt.plot(x, y, format_string, **kwargs)#x轴数据,列表或者数组,可选#y轴数据,列表或者数组#format_string 控制曲线格式的字符串,可选#**kwargs ...
2018-04-18 13:33:25
5875
2
原创 python3实现决策树(机器学习实战)
from math import logdef calcShannonEnt(dataSet):#计算给定数据集的香农熵 numEntries = len(dataSet) labelCounts = {} for featVec in dataSet: currentLabel = featVec[-1] if currentLabel...
2018-04-13 21:31:39
1714
原创 python3实现K-邻近算法(机器学习实战中代码)
from numpy import *import operator#inx:待预测数据 dateSet:训练样本集 labels:训练样本的标签 k:k邻近算法的k值def classify0(inX, dateSet, labels, k): dateSetSize = dateSet.shape[0] #获得样本的个数(也就是dateset矩阵的行数) diff...
2018-04-13 21:24:40
417
原创 北京理工python数据分析与展示课单元二总结
一、文件读取与保存:1:savetxt()与loadtxt()函数import numpy as npnumpy.savetxt(frame, array, fmt='%.18e', delimiter=None)#frame:文件名,字符串,或者产生器,可以是.gz或者.bz2的压缩文件。#array:存入文件的数组#fmt:写入文件的格式,如:%d, %.2f, %.1...
2018-04-12 17:06:58
303
原创 Matplotlib is building the font cache using fc-list. This may take a moment解决办法
绝望了一晚上 因为这个错误,在网上扒了半天,终于解决了。 就到错误提示的目录里面找到font_manager.py文件,将其大约在231行左右的direc = os.path.abspath(direc).lower() 改为:direc = direc.split(‘\0’, 1)[0]就可以解决了。 例如我这个错误的目录就是/home/sebar/.local/lib/python3....
2018-02-24 23:55:43
9808
原创 爬虫Robots协议
Robots协议就是每个网站对于来到的爬虫所提出的要求。(并非强制要求遵守的协议,只是一种建议,但是如果不遵守有可能会承担法律责任。) 每个网站的Robots协议都在该网站的根目录下,例如百度的Robots协议的位置就是’https://www.baidu.com/robots.txt’ 或者京东的Robots协议就在’https://www.jd.com/robots.txt’ 下面给出...
2018-02-21 20:36:27
8987
原创 Python3 Requests库基本用法
Requests库中有7个主要的函数,分别是request(), get(), head(), post(), put(), patch(), delete(). 这七个函数其中request()函数是其余六个函数的基础函数,其余六个函数的实现都是通过调用该函数实现的。 方法 说明 requests.request() 构造一个请求,支撑一下方法的基础方法 ...
2018-02-21 18:21:59
3915
转载 HTML、XML和JSON的关系
转载自:http://www.cnblogs.com/maybe2030/p/4558225.html阅读目录1. HTML语言2. XML语言2.1 XML的特点2.2 XML与HTML的主要差异:2.3 XML允许自定义标签2.4 XML的解析3. JSON语言3.1 JSON的语法规则...
2018-02-18 20:21:57
14457
2
原创 python3实现爬虫去爬取与python有关的词条网页
任务的目标是将百度百科的python页面的词汇解释和与python相关的链接词汇解释。 通过审查百度百科页面的编码可以知道: 相关的url链接的编码格式是:(‘a’, href=re.compile(r”/item/”))这类格式 标题的编码是《dd class...
2018-02-17 20:13:46
2643
3
原创 Python3中的分布式进程
仅仅是看懂了两份代码,做个纪念。 不过下面的ip地址可以换成本机的ip地址,也可以正常运行# task_master.pyimport random, time, queuefrom multiprocessing.managers import BaseManager# 发送任务的队列:task_queue = queue.Queue()# 接收结果的队列:result_q...
2018-02-12 20:39:16
1018
原创 python3中多重继承的问题
本来以为多重继承很简单,但是多看了一些资料后发现还是挺复杂的。 如果继承情况简单就还比较好理解,但是如果继承的情况太过于复杂的话,python3 中会使用拓扑排序的方式来寻找继承的父类。 有关继承的拓扑排序 关于这方面看上面的文章就可以了。 我下面给出除此之外的一些说明class A(object): def f(self): print('A')cl...
2018-02-09 15:56:02
2463
1
原创 python3 中关于global和nonloal的作用域
安利一波这位大佬的博客安利写的真的不错,就是有点长基本看完就懂了,我这里给出自己的理解,外加一些大佬没有给出的测试情况。 一:global是标记此变量是全局变量 例如如下的程序b = 12def get(): return bprint(get())12上面段代码运行完全没有问题,但是下面这段:b = 12def get(): b = b + 2 r...
2018-02-08 16:38:58
1888
原创 C. Qualification Rounds
组合问题:问给三种颜色的岛,同种颜色不能相连,且建成后同种颜色的岛屿之间最短距离不能小于3?数据量在5000左右 由于每种颜色自己和自己不能相连,所以只能和外面颜色相连,只要保证每个岛不会同时和两个颜色一样的岛屿相连就可以了,所以可以转化成每两种颜色的岛屿相连的方案数,然后再乘起来就行了。 每两种颜色的岛屿相连的方案数用组合数就能求出来:#!/usr/bin/env
2018-02-07 20:46:45
295
原创 J - Pangu and Stones HihoCoder - 1636 (区间DP)
In Chinese mythology, Pangu is the first living being and the creator of the sky and the earth. He woke up from an egg and split the egg into two parts: the sky and the earth.At the beginning, the
2017-11-23 20:51:56
505
原创 回文树
点击打开链接这篇博客写的真是很好的,让我看懂了回文树。在这篇博客的基础上我再说一下我自己的理解,回文树,是一颗树(其实是两颗树),在树中每个节点都代表着不同回文串,以及会记录这种回文串的个数,由于回文串是分为长度为奇数的回文串和偶数的回文串,所以这棵树是由两个根节点构成的,一个是代表长度为-1的回文串的根节点(这里-1只是一种定义,并不存在实际的串),一个是代表长度为0的回文串的节点。然后扫描
2017-10-20 21:57:04
317
原创 I - Little Zu Chongzhi's Triangles HDU - 5135
状压搜索加剪枝。#include #include #include #include #include #include using namespace std;const int N = 10009;struct node{ int v, l; node() {}; node(int _v, int _l):v(_v),l(_l) {};};vectorTree
2017-10-20 21:18:16
290
原创 Aragorn's Story HDU - 3966 (树链剖分)
树链剖分模板题目。树链剖分,就是先选定好根节点,由根节点往下,沿着子树节点最多的节点往下,将其拆成链,再由链组成线段树的数据结构#pragma comment(linker,"/STACK:100000000,100000000")#include #include #include #include using namespace std;const int MAXN = 5
2017-10-16 20:55:12
406
原创 Problem I. International Collegiate Routing ContestGym - 100548I
题目意思是,说给予n个32位IP地址,每个地址的后面有一个K,每个K代表与当前所给的IP地址的前K位相同的话,就为同一IP地址,然后问你,最少再补充多少的IP地址使得能构成所有的IP地址。 思路:字典树的题目,对于每个32位的串,输入字典树中,如果当前K小于32那么就只导入到第K位,然后在当前节点做标记,建完树后,跑一遍DFS就可以了。#include #include #includ
2017-10-16 19:50:27
322
原创 B - Regular Number HDU - 5972 (字符串快速匹配 sao操作)
涨知识了,还有这种字符串匹配方式。用bitset() 数据结构,来记录每个合法字符出现的位置, 然后去匹配。#include #includeusing namespace std;bitset a[20];bitset ans;const int Max_N = 1e6+20;int n, x, y;char str[5*Max_N];int main(){
2017-09-14 22:22:53
471
原创 M - Sending Packets LightOJ - 1321(spfa + 期望)
改下spfa的模板,求出从0点到n-1点,的最大成功率,那么期望E = d[n-1] * 2 * k * s;直接输出就行了#includeusing namespace std;const int Max_N = 1010;const int INF = 0x3f3f3f3f;struct Edge{ int v; double cost; Edge(int _v = 0
2017-09-14 20:08:57
364
原创 H - Island of Survival LightOJ - 1265
这道题目,我看了好多篇博客,都没有看到过很好的解释, 不过在这位大佬这里看到了,很棒的解释。点击打开链接用的是概率dp做的,dp[i][j]表示的是有i只老虎和j只鹿的情况下,人的最大存活概率,因为dp[0][j]都是0可以从下往上递推;状态转移方程是:我们只要解一下这个方程,把dp[i][j],移到一边就可以了。#include #include #inclu
2017-09-13 20:07:04
370
原创 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛(G. Query on a string)kmp+线段树
题目大意,给予两个串,S和T, S很长,T很短(这个很重要), 有n次操作,操作分为两种形式, 一种是把S的第i个字符替换, 第二中是截取S中l到r的一段,求T在这段出现的次数。思路:先构建一个线段树,所有节点初始化为0,然后对S和T进行kmp匹配,如果T在S中出现,就把T这次出现的T【0】位置,所对应的线段树节点变为1。例如: S为‘ADADBBAD', T为’AD', 那么线段树的节点
2017-09-10 10:07:59
494
原创 K - Finding Hotels HDU - 5992
kd树模板题目,建立kd树,对于每个输入进行搜索,在原来的基础上加入价格比对就可以了。kd树其实就是一种暴力+减枝的操作。#include #include #include #include #include #include #include #include #include #include #include #include #include #incl
2017-09-10 09:57:23
395
原创 kd树c++实现
#include #include #include #include #include using namespace std;//对输入的n个点组成的点集合,对于每次输入的点,求离输入点最近的k个点的位置。#define LL long long int #define maxn 50080 #define K 5 //空间最大维度。int num,
2017-09-10 09:54:04
2499
原创 HDU6138 F Fleet of the Eternal Throne(字典树+后缀数组+二分)
题目大意:给予n个字符串,有q次查询,对于每次查询,求出x串与y串的最长公共子串长度,该子串至少要是n个串中的一个串的前缀。首先对输入的n个串建立字典树,方便查询前缀,然后对于每次查询输入的x与y,把x串与y串取出来,两个串连接在一起,中间用个没有出现过的字符隔开,对这个串套用后缀数组模板,然后对答案二分。对于每个二分出来的mid,按照扫描一遍height数组,如果当前的height[i]
2017-08-17 17:44:24
409
原创 正则化(经验风险最小化与结构风险最小化)
经验风险最小化,是根据定义的cost函数,来使训练集合的cost(损失)函数的整体最小,一般常见的的损失函数有一下:当选定了损失函数以后,就可以确定经验风险函数:1/N * L(yi, f(xi)) ( i的范围是1到N的所有训练集做累加);所谓经验风险最小化就是确定模型的参数使得经验风险函数最小。但是当训练集合很小而训练集合的元素特
2017-08-16 11:21:47
4879
原创 H - Hard challenge HDU - 6127
思路:对所有的点进行极角坐标排序,然后从最小的点开始,对每个点i,二分查找它的极角逆时针旋转180度的角,在所有点之间的位置。如果这个角坐标的点是L右边的是R,只要求当前点到L点的权值总和,再算R顺时针转到i的权重总和.(这里用线段树维护下)。然后两个权重相乘就是当前直线的权值,然后总体取最大。主要是要想到,对于n个点,做一条过原点的直线,将点集分为两块,这条直线的值就是,直线两边点权重总和乘
2017-08-15 19:13:01
497
原创 Codeforces Round #428 (Div. 2)C
这题就是一道简单的贪心,但是少考虑了一种特例,当还剩下3组人,每组2个人,可以用2个4排的座位放下这些人。11023302#include #include #include #include #include #include #include using namespace std;#define Max_N 100000+20int n;vector G[Ma
2017-08-14 21:04:16
253
原创 小小粉丝度度熊 HDU - 6119 (尺取法)
第一次写尺取,最开始写的很挫,最后看了一下别人的框架又重新写了一遍。思路:首先预处理下,将相交区间何必,然后用尺取扫描一遍就可以了,#include #include #include #include #include #include #include #include #include #include #include #include #include
2017-08-14 19:16:43
280
原创 E - 最长双回文串 HYSBZ - 2565
思路:套用回文串的模板求出最长回文串之后, 用两个数组L与R分别存 最长回文串右边界在当前节点的最长回文串长度,以及左边界在当前节点的最长回文串长度。然后分别在扫描一下两个数组,得到回文串左右边界在当前节点的最长回文串长度。然后取最大值就好了。#include #include #include #include #include using namespace std;const
2017-08-14 19:05:31
298
原创 2017多校赛 1002 Rikka with String(AC自动机+状压)
这个题目和之前做的一道题目很像:类似的题目 对于题目要求枚举到2L长度的串,由于01串本身的性质我们只用枚举到L就行了,那一半是对称的。在枚举这一半时是可以随便枚举的,因为这一般确定了,那么另一半也确定了,这样2L的串一定是个01串。 然后对于输入的n个串做如下处理:对于每个输入的串讲其插入AC自动机里面,然后将每个串的反串(然后01颠倒)也插入进去。比如对于001,我们不仅要插入001,还要将
2017-08-08 18:11:13
497
原创 G - Maximum repetition substring POJ - 3693 (后缀数组)
又是一道后缀数组的题目,和上一道题目是类似的,不过要输字符串本身,在同等重复次数下输出,字典序最小的。 我们只需要记录下所有达到最大重复次数的,重复段的长度就可以了,然后按照sa数组排序好的字典序,扫一遍就就可以了,遇到的第一个就可以直接输出来了。#include <iostream>#include <stdio.h>#include <cstring>#include <algorith
2017-08-07 22:07:22
303
原创 F - Repeats SPOJ - REPEATS
这是一篇论文里面的题目,虽然看了论文里面的解法,发现对我还是比较难理解,最后思考了好久才明白这题的具体做法。 我们去枚举重复子串的长度,如果这个子串的重复长度大于等于2,那么对每个枚举的长度L来说,我们计算S[0], S[L], S[2*L], S[3*L]……,这些相邻的两个后缀,一定会有一个大于L的前缀(也有可能在当前的前面),设这个前缀为k那么长为L的串就会重复k/L+1次,同时要考虑前面有
2017-08-07 18:49:20
387
原创 2017百度之星资格赛:1001. 度度熊保护村庄(计算几何+最小环)
本来以为是一道凸包题目,结果最后看了位大佬的题解才发现是图论的算法。 大佬博客链接 首先对守卫熊的m个点两两一枚举,对于每一次枚举的两个点a, b,去测试所有的n个村庄是否全在这次枚举线段的一侧,如果所有的点都在ab的左边就把m个点中的ab连接一条有向边,如果都在右边,就对ba连一条边,如果全在这条线段就把ab连接一条双向边,除此以外都不连。这样处理后对m个点所建立的图套模板跑一个floyd最小
2017-08-07 16:52:34
1090
原创 Manacher最长回文子串(模板)
该算法就是处理一个字符串中的最长回文子串,在后缀数组中看到过相对的解法,时间复杂度可以优化到o(n),但是相对代码量太大,而面对回文串算法有相对更简单的方法,可以很简单的处理出来,代码量小,时间也是o(n)。 Manacher算法是一种dp思想,很好理解,贴出代码,方便以后自己用。#include <stdio.h>#include <iostream>#include <cstring>#
2017-08-06 22:39:42
249
原创 E - Power Strings POJ - 2406 (后缀数组||kmp)
这个题目是后缀数组专题里面的一道题目。结果就是照着后缀数组的思路写的果然超时了。结果上网一搜才发现kmp也能做,真是太死板了,做题。 思路:对于一个串如果它是某个串的重复得到的,那么当前串的某个后缀串suff(i)与这串的公共前缀刚好就是那个后缀串suff(i),并且串长能整除i那么这个串就是长度为i的重复串。 AC代码:#include <iostream>#include <stdio.h
2017-08-05 22:46:09
497
原创 D - Dirt Ratio HDU - 6070详解 (二分+线段树区间修改+思维)
这道题目比赛的时候做了半天,结果基本就是挂机的状态。事后看了题解也是一脸懵逼的。最后看了标程才知道怎么做的。看懂之后才发现这个这个题目那么有趣,真是思维太巧妙了(吐槽一下多校赛题解,只有做出了的人才能看懂。(ㄒoㄒ))。 他是这样解决的二分枚举答案,对于答案如果成立那么一定存在size(l, r)/(r-l+1) < = mid.所以化简得到size(l, r) + l * mid <= (r
2017-08-04 21:36:12
397
原创 C - Distinct Substrings SPOJ - DISUBSTR (后缀数组)
题目意思是求给定一序列中所有不同连续子序列的个数。 对于一个长度为n的序列那么其总共的连续子序列的个数是(n+1)*n/2;所以只要用总共的减去重复的就可以了。如何计算重复的?还是要用到height数组,由于字典序排好的后缀,所以如果当前相邻字符串的公共前缀长度为k的话,那么只要用总数减取k就行了,比如一个串为abcabc在字典序中,adc与adcadc是相邻的,所以就说明了有长度为3的共同部分,
2017-08-03 21:27:51
340
原创 A - Musical Theme POJ - 1743(后缀数组)
人生第一道后缀数组题目,值得纪念下。 题目意思很简单,就是给予一个序列,求最长不相交的相同的连续子序列的长度(这里的相同,只要是两个序列的差值相等都算相同的序列)。 后缀数组模板题目:关键在于预处理上比较难想,(表示看了题解)。对于输入的序列,构造一个新的序列,该序列的每一位的值是原始序列相邻两位的差值。也就是说如果输入序列是a[i],那么新的序列new[i] = a[i+1] - a[i];
2017-08-03 21:17:25
401
原创 C. Star sky(Codeforces Round #427 (Div. 2) C)
题目大意:给在100*100的网格上,有n颗星星, 每颗星星有自己的亮度,最大亮度是c,每过t秒,星星的亮度就会加t,如果亮度超过了c,就会变成0,然后继续从0开始增加。现在有q次查询, 每次查询会输入一个时间t,和两个点,要求输出,在t时间下,这两个点所组成的矩形中星星亮度的和。 题目思路:首先我们现将输入的查询全部存起来,输入的时候将每个查询的t对(c+1) 取模, 然后对t进行排序。然后
2017-08-01 10:17:41
349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人