爬虫实习日志 做爬虫实习工作了快 4 周了,故整理一下思绪。第一周的一两天熟悉工作环境,做了简单的WEB爬虫项目,以为是练手的…没想到第二天就直接布置项目了,虽然比较简单,后续也会继续维护修改。第二周开始主要做app爬虫方面的东西,涉及到的量比较大,现在也还在编写,主要通过这些项目和一些杂项掌握的有:初步了解了逆向工程熟练掌握APP抓包对安卓Xposed破解SSL pinning有初步了解对Scra...
大三下近期的安排、面试经历 有一段时间没有更博客,从4月份开始,开始准备面试和手上有几个小型项目要做。因为是边学边做的,一些东西搬到博客上就显得很没有营养,自己看不如直接看Github上的代码注释,给别人看更讲不清,这才发现自己以前很多博客都没有讲清楚。内推找了一份不错的的独角兽公司的爬虫实习,投的是数据分析岗,但HR改成了爬虫,面试过程很顺利,offer 也发得很快。有了爬虫实习后可以更安心的去深入学习 scrapy 和...
SQL创建、查询、过滤、多表查询 《SQL学习指南》简要笔记1 SQL创建1.1 使用mysql命令行$mysql -u root -p [密码] bank -P3306表示用root用户登录并使用数据库bank,密码可以为空,端口为3306,省去了每次输入use bank的SQL命令。输入quit/exit退出。1.2 数据类型常用文本类型:可变长度fixed-length和固定长度variable-length...
Python链家租房信息爬虫 爬取链家某地区(杭州,南京等)租房信息爬虫。链家只开放了前100页供查看,每夜30条,因此实际上只爬取了前3000条信息。对于项目需求需要分析某地区某段时间内发布的租房信息,爬取对应的名称name,地区dist,面积square,价格price,备注detail,用pandas.DataFrame.to_excel()保存为 excel 文件。并发下载使用futures.ThreadPoolEx...
Nginx+uWSGI+Flask+https配置 关于Nginx和uWSGI之间的关系,部署等等网上已经有很多抄来抄去的资料了,这里记录下小白第一次实践尝试的结果。按照自底而上的顺序写。文章目录1 Nginx/uWSGI/Flask/SSL证书是什么1.1 Nginx1.2 uWSGI1.3 Flask1.4 SSL证书2 创建Flask程序3 uWGSI配置4 配置Nginx1 Nginx/uWSGI/Flask/SSL证书是什么1.1 ...
Dijkstra算法的Python实现 将图上的顶点分为已访问visited和未访问node两个集合.每次从visited向外拓展一个点,拓展规则是在可更新的点里是距离最小的.算法伪代码:def dijkstra(): 初始化 visited 和 node 集合,distance[] visited 加入源节点 node 移除源节点 while node 非空: 最短路径长度 = i...
光伏发电预测(二) 赛题的决赛要求:利用之前若干时段的光伏发电参数,预测未来两个月的每天15分钟一次共96个点的瞬时功率。先对数据集模糊聚类,再用相似日得出预测日的除了瞬时有功以外的所有参数,最后用神经网络计算预测日的瞬时有功。一、数据分析原始数据表“data.csv”,提供了用户A1-A10的2016年7月31日-2018年7月1日的瞬时有功、瞬时无功、A相电流、B相电流、C相电流、A相电压、B相电压、C相...
光伏发电预测(一) 最近参加了一个光伏发电预测的比赛,第一次接触这类课题,看了很多关于光伏发电预测和负荷预测的论文,算是入了一个门。主要工作还是在数据清理上和特征工程上。做好了这两项后面的预测过程倒是比较简单。比赛要求:利用之前若干时段的光伏发电参数,预测未来两个月的正向有功总电量。具体见下文。一、数据分析原始数据表 “data.csv”,提供了用户 A1-A5 的 2016 年 12 月 31 日-2018 ...
有道词典爬虫 文章目录有道词典爬虫代码实现有道词典爬虫构造url对单个单词的释义及例句进行爬虫。查询界面不需要登陆操作,用 GET 方法获取源代码。对于上图所示的单词查询界面,简单地对单词’scene’ 进行替换即可。很久没有用xpath解析,有点生疏。从审查元素可以看到每个例句都被<div class='ol'>包含 ,遍历他的子节点即可。代码实现import requests...
有道词典爬虫 文章目录有道词典爬虫代码实现有道词典爬虫构造url对单个单词的释义及例句进行爬虫。查询界面不需要登陆操作,用 GET 方法获取源代码。对于上图所示的单词查询界面,简单地对单词’scene’ 进行替换即可。很久没有用xpath解析,有点生疏。从审查元素可以看到每个例句都被<div class='ol'>包含 ,遍历他的子节点即可。代码实现import requests...
爬取vjudge的比赛代码和相关信息 文章目录概述开发过程代码结构源代码怎样使用github 地址:https://github.com/Joovo/vjudge_spider概述爬虫的目的是作为 contest 管理员需要统计 contest 下参赛者的错误信息并下载所有参赛者代码。代码实现的是分题号分别统计 Wrong Answer 的所有代码,编号及简要信息,稍加修改即可实现爬取其他具体信息,如代码长度,运行时间等等....
tensorflow实现线性回归 文章目录计算图归一化实现梯度下降手动梯度下降自动微分用 tensorflow 实现一个线性回归程序简单了解tensorflow的一些基本操作。计算图tensorflow 的本质是用Python构建一个计算图,然后用优化后的C++代码来运行这个图,因此适用于大型机器学习和分布式计算中。构建一个图:import tensorflow as tf# 构建图x=tf.Variable(3,n...
Adaboost 元算法改进分类性能 文章目录概述bagging 自举汇聚法Adaboost 元算法AdaBoost的一般流程更新规则:单层决策树`decision stump`基于 DS 建立 Adaboost完整代码,预测患有疝病的马是否能够存活概述元算法(meta-algorithm)或集成方法(ensemble method)的思路是对多个不同的算法进行组合,从而使答案尽量达到最优的一种方法。Adaboost 是一种非常优...
《流畅的Python》12-构造对象 构造对象的常用到几个概念:super(),__new__,__init____new__和__init__一般将__init__称为构造方法,实际上__new__用于实例化类,__init__用于初始化实例。Python构造对象的伪代码:def object_maker(the_class,some_arg): new_object=the_class.__new__(some...
《流畅的Python》12-构造对象 构造对象的常用到几个概念:super(),__new__,__init____new__和__init__一般将__init__称为构造方法,实际上__new__用于实例化类,__init__用于初始化实例。Python构造对象的伪代码:def object_maker(the_class,some_arg): new_object=the_class.__new__(some...
SVM的分类超平面的数学推导 给出数学推导,每个向量的意义不再赘述转换原问题确定每个支持向量下的超平面:min y(w^T+b)/||w||间隔最大的为所求最优的超平面 max min y(w^T+b)/||w|| ,即求:arg&amp;amp;amp;amp;amp;amp;nbsp;maxwT,b{minx&amp;amp;amp;amp;amp;amp;nbsp;yi×(wTxi+b)1∣∣w∣∣},yi即labeliarg \space \underset{w^T,b} {max}
线性回归 Python 语言实现 先占一个坑,最近几周在做一个比赛,十一月份回来补代码发上来注释掉免得又鸽了。。。。《机器学习实战》这本书有几点不适合入门者深入学习的地方是关键代码没有给出具体原理,而介绍方式是对机器学习每个基础算法进行讲解,所以经常在学习几个章节之间会感觉到断层,需要其他一些地方自行理解。线性回归这章后面的优化方式又讲的太多没讲清,我认为这是一个问题,博客也不好记。最好在一个专门的章节讲优化方式。公式推导见...
线性回归系数,局部加权线性回归系数的数学推导 用最小二乘法Ordinary Least Square即通过最小化误差的平方和寻找数据的最佳函数匹配∑i=1m(y−xiTw)2\sum_{i=1}^{m}(y-x_i^Tw)^2i=1∑m(y−xiTw)2用矩阵表示:(y−Xw)T(y−Xw)(y-Xw)^T(y-Xw)(y−Xw)T(y−Xw)对这个式子求导,令其等于0,解出www即为最优解。结论为w^=(XTX)−1...
最大似然函数 补一下概率论的知识,不会还得翻书,稍微记一下几个点。1.MLE:最大似然估计2.确定最值点:∂∂θjL=0或∂∂θjlnL=0\frac{\partial}{\partial \theta_j}L=0 或 \frac{\partial}{\partial \theta_j}ln L=0∂θj∂L=0或∂θj∂lnL=03.最大似然估计的不变性:若θ^\hat{\theta}θ^是θ...
逻辑回归分类器(Logistic Regression) 目录Logistic回归概述Logistic回归分类器,Sigmoid 函数最优化理论确定回归系数(weight)梯度上升法数学推导随机梯度上升处理数据的缺失值实例:预测病马死亡率吃了概率论的亏逻辑回归(Logistic Regression)概述直观来说,用一条直线对一些现有的数据点进行拟合的过程,就叫做回归。Logistic分类的主要思想:根据现有数据...
朴素贝叶斯分类器-文档分类 朴素贝叶斯理论概述条件概率用朴素贝叶斯进行文档分类文本分类代码文档词袋模型实例:朴素贝叶斯过滤垃圾邮件朴素贝叶斯理论概述朴素贝叶斯(navie bayes)是贝叶斯决策理论的一部分,只考虑最简单的假设,用 Python 将文本切分为词向量,然后利用词向量对文档分类。优点:在数据较少的情况下仍然有效,可以处理多类别问题。缺点:对于输入数据的准备方式较为敏感。适用数据类型:标...
concurrent.futures 并发爬取 wos 的部分专利号和施引专利 工作上需要爬取 wos 的一些专利号和施引专利,做成了一个 excel 表格。施引专利在系统默认的导出里是没有的。第一次实际运用了concurrent.futures 来处理并发下载,确实很简单。一开始用 scrapy 框架貌似连接非常慢,不知道什么原理,三次连接两次超时,于是手写了一个用很多 try/except 结构的 spider 。一定要记得写日志和异常处理!!!!全文基本上没有很难...
scrapy 爬取 arxiv.org 论文 和同学想要建立一个检索 arxiv.org 论文的网站,这是一个 demoGithub地址:https://github.com/Joovo/Arxiv鸽了好久把博客补了,主要实战里熟练了 scrapy 的操作:scrapy shell 检验 xpath 正确性reponse.xpath().extract() 转换为字符串列表str.strip()处理数据获取 xpath 的子节点...
决策树 ID3算法 决策树ID3算法概述决策树的构造信息熵,信息增益 entropy,infomation gainshannon entropy划分数据集去除dataset中的一列。递归构造决策树(分类器)处理最后一个节点递归建树shannon entropy去除dataset中的一列。递归建树实例-使用决策树预测隐形眼睛类型pickle模块存储决策树ID...
K-近邻算法(KNN)识别手写数字 k-近邻算法概述算法样本集及分类核心代码output is BKNN中的几个常见写法numpy.ndarraynumpy.ndarray.shapenumpy.tile(A,reps)k-近邻算法概述KNN算法采用测量不同特征值之间的距离方法进行分类,输出一个分类族群。主要工作原理:存在一个训练样本集,并且每个样本集中每个数据都存在标签,即数据和对应所属分类的...
《流畅的Python》11-用concurrent.futures (期物)处理并发 期物(future)是指一种对象,表示异步执行的操作。这个概念的作用很大,是 concurrent.futures 模块和asyncio 包(第 18 章讨论)的基础。期物是译者自创的词,类似于期货,期权,字面上可以简单理解为要执行而未执行的操作。这一章基本上可以作为协程和asyncio包两个章节中承上启下的部分,因为协程实际上描述了异步的思想和简单实现,而concurrent.futur...
《流畅的Python》10-协程初步 StopIteration协程放在生成器,迭代器后面讲,这也是生成器的最终的归宿,或者把它理解为高阶的特性。如果生成器仅仅是当作语法糖,那么它可以被很容易的被其他形式替代而不会被重视。同时,作者指出,协程作为一种鲜为人知,资料匮乏的特性,看起来并不是很有用,常常被忽视。实际上关于Python的一般广为人知的特性已经介绍完了,不过事情正变得更有趣。前面介绍协程,然后介绍新的句法,用yield...
Python 函数的参数,签名 <!-- TOC depthFrom:1 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->参数处理机制函数签名对象注意是小写的signature参数处理机制用一个例子来看 Python 的函数参数处理机制。 Python3 提供了仅限关键词参数( keyword-only arguement)。...
《流畅的Python》9-上下文管理器,with 和 else else 的用法除了 if/else 外,for ,while 语句都可以使用 else 。举例for i in range(10): if i == 11: breakelse: print('magic')含义显而易见,处理for循环里没有被处理的情况,优点是不用设置特殊标志来判断。上下文管理器with 语句处理的对象就是上下文...
《流畅的Python》8-可迭代对象,迭代器和生成器 关注的本节内容:实现一个可迭代对象和迭代器可迭代对象和迭代器的区分实现一个标准的迭代器生成器迭代器(进阶)惰性定义一个Sentence 类生成器表达式(语法糖)实现一个可迭代对象和迭代器可迭代对象如何实现迭代?调用iter(x) , x为可迭代对象。按照三个顺序: 1. 是否实现了__item__方法,如果实现了,调用他并获取一个迭代器。 2. 是否实现了__...
《流畅的Python》7-白鹅协议和抽象基类 这章主要讲的是 Python 风格下的协议和接口思想,不是很好归纳,搬运了一下书上的介绍。Python 里面没有给出类似 Java 中的interface的官方用法。本章讨论的话题是接口:从鸭子类型的代表特征动态协议,到使接口更明确、能验证实现是否符合规定的抽象基类(Abstract Base Class,ABC)。 本章先说明 Python 社区以往对接口的不严谨理解:部分实现接口通常被认...
《流畅的Python》6-鸭子类型和切片原理 书中 9-10 章用实现一个Vector类来了解一个类的运行和实现过程,作者实现的细节非常值得一看,这里就不搬运了,讲一下序列中切片的原理。鸭子类型切片原理鸭子类型在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由”当前方法和属性的集合”决定。通俗来讲,“当看到一只鸟走...
[转]Linux安装nodejs 解决node与npm版本问题 转载自 https://blog.csdn.net/deaidai/article/details/79925485#commentBox前言LINUX环境:ubantu16.04Nodejs官方安装地址:戳这<<安装方式1.执行检查可更新的软件sudo apt-get update 2.先用普通的apt工具安装低版本的node,然后再升级最新sudo ...
《流畅的Python》读书笔记 博客目录:《流畅的Python》 读书笔记1-序列《流畅的Python》读书笔记2-函数的参数《流畅的Python》读书笔记3-operator模块和functools模块《流畅的Python》读书笔记4-函数装饰器和闭包详解为什么看这本书?很早就总各种方面接触到 Python,之前写过脚本,前一阵子开始写爬虫,写到复杂的爬虫发现自己边谷歌边打代码的方式已经不够用了。于...
《流畅的Python》5-对象引用,可变性,垃圾回收 标识,相等性和别名 在 == 和 is 中选择元组的相对不可变性浅复制和深复制 默认做浅复制如何做深复制函数的参数作为引用 防御可变参数垃圾回收 weakref.finalize注册回调函数观察对象销毁弱引用weakref.WeakValueDictionary简介 很有趣的基础知识环节。标识,相等性和别名每个变量都有标识,类型,值。每个对象标识只有...
《流畅的Python》4-函数装饰器和闭包详解 基础知识Python 何时执行装饰器用装饰器改进“策略”模式变量作用域规则闭包nonlocal 声明实现一个简单的装饰器标准库中的装饰器 functools.lru_cache 做备忘单分派泛函数叠放装饰器参数化装饰器 在我另一篇博客里稍微有讲到一点,说的不是很好。首先学习前要了解 Python 里函数是一等对象。 函数装饰器是用来增强函数的行为,而想实现...
《流畅的Python》3-operator模块和functools模块 operator模块 使用 itemgetter 排序一个元组列表。attritem 提取对象的属性。methodcallerfunctools.partial 冻结参数 Python 提供 operator模块和 functools模块来方便地实现函数式编程。operator模块用lambda实现阶乘函数from functools import red...
《流畅的Python》2-函数的参数 用一个例子来看 Python 的函数参数处理机制。 Python3 提供了仅限关键词参数( keyword-only arguement)。用*可迭代对象,用**表示映射到单个参数def tag(name,*content,cls=None,**attrs): if cls is None: attrs['class']=cls if attrs...
弹幕网站开发(只有前端) index.htmldanmu.cssdanmu.js 之前学习了一段时间 HTML,css,近期简单看了一下 bootstrap,jQuery,JavaScript,于是做了弹幕网站练一下熟悉感觉。原先的想法是有后端,储存到服务器上的,看了一下LeanCloud感觉可以用,不过先跳票了,先把前端打完再说吧。第一次开发 Web,主要以借鉴网上的代码为主,看了一下各大弹幕网...
HTML/CSS+bootstrap HTML/CSS css覆盖的优先级一些细节问题bootstrap bootstrap 用法使用心得JQuery 在freecodecamp上学了一下,感觉比同类型的学习网站更好一些。 想整理一下学习的内容,但是发现太杂了…果然还是写点心得吧,第二天就碰上了css的覆盖问题。HTML/CSSstyle标签里的写法: .开头对应一个class#开...
《流畅的Python》1-序列 书上前言讲到,本书主要强调 Python 独有的特性。这里记录了一些自己所忽视的一些用法和函数。列表推导式和生成器表达式列表推导式 list comprehension/listcomp/lc通常原则是为了更易读 用 listcomp 来创建新的列表,若超过两行,则应考虑重写。map/filtermap 和 filter 配合 lambda 能做 listcomp...
Python 函数式编程入门 [TOC] 学 python3 也有一段时间了,关于函数式编程也看了很多遍,总是记不住,大概因为平时也忘记用。 整理了网上部分教程。 因为是针对Python写的,直接偷懒参考了[廖雪峰老师](“https://www.liaoxuefeng.com/“)的分类方法。主要通过实例来直观地呈现函数式编程函数式编程主要用了映射的思维,思维方式区别于面对对象编程(OOP属于一种过程式编程...
fcitx崩溃解决办法 ubuntu下fcitx老是崩溃啊…. 重启命令又记不住要查… 干脆写一个博客好了killall fcitxkillall sogou-qimpanel# 关闭进程# 开启fcitx &amp;
pymongo 的几个常用操作 学到了 MongoDB Mongo 是一个基于分布式文件存储的数据库,由 C++ 编写,旨在为 Web 应用提供可拓展的高性能数据存储解决方案.它介于关系数据库和非关系数据库之间,在非关系数据库中最像关系数据库. 首先在 pycharm 中安装 pymongo 库 首先每次使用数据库前要打开 MongoDB 服务,即在文件目录下分别执行 mongod , mongo 命令 且关闭数据库...
post 方法爬取知网硕博类论文 1.概述2.准备工作2.1 操作系统2.2 开发工具3.逻辑分析3.1 页面分析3.2 源码分析3.3 Fiddler 调试4.编写代码5.服务器托管6.生成结果7.后记知网硕博类论文url爬虫1.概述 手写一个对知网的所有的硕博类论文的 URL 分地区和学科进行爬取的爬虫,将爬虫托管在服务器上运行,并将得到的初步结果保存在 ...
[转]Linux系统下怎么安装.deb文件? deb 是 ubuntu 、debian 的格式。 rpm 是 redhat 、fedora 、suse 的格式。他们不通用(虽然可以转换一下)。deb是debian发行版的软件包 ubuntu是基于debian 发行的 所有可以用.deb是solaris系统下的安装包后缀名。安装方法如下cd 到安装包的目录dpkg -i 安装包名字如果你使用的是red hat lin...
[Atom]Checking for native build tools failed 安装插件时的报错 第一次在 Atom 中安装插件时遇到的问题:E:\Atom\resources\app\apm\bin&amp;gt;apm install --checkChecking for native build tools failedgyp info it worked if it ends with okgyp info using node-gyp@2.0.2gyp info using ...
Urllib库和URLError库的异常处理 Urllib 库是 Python 一个用于操作 URL 的模块, Python3 中合并了 Python2.X 中的 Urllib2 和 Urllib 库,成为 Urllib 库通过Urllib爬取网页import urllib.requestfile=urllib.request.urlopen("http://www.baidu.com")data=file.read()d...
Web of Science爬虫[模拟浏览器] 学习了另一位写爬虫的博主 Web of Science爬虫实战(模拟浏览器) 以前只会写静态页面分析,简单构造 url 那种爬虫 从这个实战里接触到了以下知识:xpathselenium WebDriveretree这里只介绍本文用到的地方xpath元素查找方式,使用这种方法几乎可以定位到页面上的任意元素。XPath是XML Path的简称,由于 HTML 文档...
[转]爬虫入门 转载链接: https://blog.csdn.net/jgzquanquan/article/details/78521799目录(?)[+]爬虫入门概述Requests库介绍1Requests库主要有7个主要方法1requestsrequest 构造一个请求支撑以下各方法的基础方法2requestsget 获取HTML网页的主要方法对应于HTTP的GET3requestshead 获取H...
[静态定向爬虫]远程教育杂志 远程教育杂志链接 http://dej.zjtvu.edu.cn/ 2018年第二期第二刊: http://dej.zjtvu.edu.cn//oa/darticle.aspx?type=view&id=201802002 分析页面…CRTL+U 没啥好分析的 用时间戳来区分不同期刊 像:201X0YZZZ 凑时间戳用了rjust方法,右对齐填充数字 一个静态页面 用B...
原码,反码,补码,移码的关系 计算机组成原理 先占个大坑数据格式分为:一.定点格式,即约定机器中所有的数据的小数点的位置是固定不变的.二.浮点格式,即小数点位置可变,表示范围较大一.定点数: 用一个 n+1n+1 位字来表示一个定点数 xx ,其中一位 xnxn 表示符号位,其余位数表示量值. 当数据为纯小数时,小数点即在 xnxn 和 xn−1xn−1 之间的位置 当数据为纯整数是,小数点即...
Python爬虫实现[中国最好大学排名2016] 中国最好大学排名网 http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html 输入: url,num(打印行数)输出: 三个函数:#获取源码def getHTMLText(url): try: r = requests.get(url, timeout=30) r.raise_for_s...
HTML 表格(form/table) 实现一个表格: 3.css:table,tr,td{ margin:0 auto; border:1px solid; border-style:groove;(凹陷效果)}input{ border-style:groove; background:lightblue; color:red;}a:link {color:...
退役 因为个人原因退役了 大学的acm生涯算是戛然而止 没什么特别出彩的地方(虽说刚开始是蛮不错的 想着与其带着无聊的心情再去打几次比赛不如趁早抽身 最近找到了以前选的导师开始想往数据分析的方面发展还是有点小遗憾吧有一点惋惜 因为失去了激情~也不想再去做违心的事情 多尝试点也不是不好 不知道以后毕业工作的我再看到这篇会有什么想法呢之前...
区间DP Cheapest Palindrome 题目链接: POJ-3280 大意: 给一个串,给出每个字母删去和增加的代价(cost) 要求使之变成回文串的最小代价分析: 考虑区间 DP 方程, dp(i,j) 表示从 i 到 j 的最小代价,那么 i 到 j 已经考虑完回文了 对于 dp(i,j) 方向有 dp(i+1,j) 和 dp(i,j-1) 两个,分别从增加和删除两种方式中取小值dp方程:if s[i] == ...
Gym 101653O Diamonds 总结 LCS LIS 做到一题,顺便总结一下 LIS LCS 先给出一道 n2 的 DP 做法求LIS 原题链接: Gym 101653 O Diamonds大意: 给一个序列,每个点代表一个项链,有两个值 w,c 要求最长上升子序列,只不过现在要同时考虑两个思路: 题目的范围很宽,直接n2算法能直接过,一开始写nlogn算法不知道为什么会错,好像是因为重载过后 lower_bound仍然不能用,有别
能量项链 HRBUST - 1376 区间DP [模板] 题目链接: 能量项链Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果
滑雪 UESTC - 252 记忆化搜索 dp 大意: 一道很经典的水题 在一个矩阵中找到最长的下降序列 思路: 记忆化搜索 练练手代码实现:#includeusing namespace std;#define pb push_back#define inf 0x3f3f3f3f#define mem(s,t) memset(s,t,sizeof s)#define mk make_pairtypede
String Reconstruction CodeForces - 827A 贪心 伪字符串匹配 题目链接: String Reconstruction 大意: 看样例很容易懂,给出出现的字符及其位置,构造出给特定的字符串,其余位置用 ‘a’ 填补input 3 a 4 1 3 5 7 ab 2 1 5 ca 1 4 output abacaba input 1 a 1 3 output aaa思路: 题目给出结果是特定的,不需要判断是否能构造出 将重复
Minimal Labels CodeForces - 825E 拓扑排序 贪心 [模板] 原题链接: E. Minimal Labels题目大意: 给出无向图 逆向拓扑排序分析: 拓扑排序标号的一般步骤是从小往大,而从大到小时会出现状况 所以只要反向建边,反向编号即可.#include using namespace std;typedef long long ll;typedef pair int,int> pii;#define mem(s,t)
Wash HDU - 6000 贪心 题目链接: HDU-6000 Wash大意: 和洗衣服需要不同代价的贪心题有点类似,貌似以前做过 有 L 件衣服, n 个洗衣机,m个烘干机 给出洗衣机和烘干机时间 ai" role="presentation" style="position: relative;">aiaia_i,bi" role="presentation" style="position: relative;"
Planning CodeForces - 853A 贪心 题目链接: Planning题目大意: 机场中飞机起飞序列为 ai(i>=0)" role="presentation" style="position: relative;">ai(i>=0)ai(i>=0)a_i(i>=0) 分别表示为: 在 i 时间起飞的飞机被延误后的每分钟代价为 ai" role="presentation" style="position: relativ
Stripies POJ - 1862 贪心 大意: 一个序列 xi 要求对其中两两操作,拿出两个 x,y" role="presentation" style="position: relative;">x,yx,yx,y 计算出2xy" role="presentation" style="position: relative;">2xy−−√2xy2\sqrt{xy} 并放回分析: 贪心策略不是首尾就是正向逆向,简单证明三
Door Frames CodeForces - 910B 大意: 给一个长条木板 L 建两个门框 门框由 2*a 和 b 构成,求最少需要多少个长条木板分析: 可以贪心地去做…wa了 数据小果断dfs暴搜一下#includeusing namespace std;#define pb push_back#define inf 0x3f3f3f3f#define mem(s,t) memset(s,t,sizeof s)ty
D.MADMAX 记忆化搜索 DAG MADMAX 大意: 一个无向图,每条边有一个权值用字母表示,两个人在图上开始博弈游戏. 每次两个人轮流移动,.最后一个不能移动的人输,每次移动都要满足这条边比上一条边要大.输出一个表格表示两人从任意两点出发的输赢情况.即遍历得到所有情况 规模100 1000ms 分析: 每个状态记录两个人的点 dp ( u , v , c ) 表示位置在 u 和 v, 上一个权值为 c
C. The Monster 括号匹配 The Monster 题目大意: 给出一个串,只包含 ( ? ) 三种符号,求出有多少个子串是完美匹配的. 比如 ( ) ? ) => ( ) ( ) 完美匹配( ( ) ? => ( ( ) )完美匹配? ? ? ? => ( ) ( ) => ( ( ) ) 算一种子串length分析: 这个长度和时间限制比较诡异,想不到比较好的方法,猜想
Cooking Time Gym - 101498F 贪心 题目链接: Cooking Time 题目大意: 有一个冰箱,有N个调味品,一开始所有调味品都在冰箱内.外面最多放置 K个调味品 你要按给定的顺序来拿取调味品,如果外面有调味品那么直接取用即可,如果没有需要打开冰箱,如果外面放置数达到K了,那么需要放回一个. 现在要求最少要开几次冰箱分析: 贪心地去放回调味品,将后面没有再继续用的调味品放回. 如果都一样那么任意返回一个即可.原因
Counting Paths Gym - 101498D Counting Paths 题目大意: 题干很长,看起来很多shui 考虑一个无限的完全二叉树 求有多少个路径,满足长度为 A,拐弯次数为B的.分析: 考虑可以拐弯的地方有A-1个 那么C(A-1,B)就是一条路的答案 刚开始有两条路可以选 所以 ans=2*C(A-1,B)1e5的数据利用线性求逆元,组合数即可.#include using namespace s
Computer Science Gym - 101510C Computer Science Gym-101510C Description: Vera has N integers a1, …, aN. A margin is a non-negative integer L such that it is possible to choose N integers x1, …, xN such that for all i, 1 ≤ i ≤ N,
[创新实践] SLAM简介 此篇是东拼西凑来的一篇简介,课程实验所用,仅供自己学习,想认真了解的可以去高博的博客看看. 实验上跟着别人的步子实现了一个开源的的DSO(即Direct Sparse Odometry,采用直接法实现建图的程序),然后简单了解一下 SLAM 还有直接法和间接法的区别,看了下原理代码,好难啊囧SLAM 技术随着最近几年机器人、VR、AR 的火爆而为人所知,在传感器、算法、软件、硬件等方向都有不同的进
POJ 2976 Dropping tests 01分数规划 模板 二分&&Dinkelbach DescriptionIn a certain course, you take n tests. If you get ai out of bi questions correct on test i, your cumulative average is defined to be Given your test scores and a positive integer k, deter
Codeforces Round #453 (Div. 2) ABCD题解 比赛链接: Div.2 #453A Visiting a Friend 大意: 0要达到线段上的某一点m, 已知线段上有若干个传送点a,a可传送到 [a,b] 上的任意一点,求能否从0到m点。思路: 记录当前能到达的最远点 s,不断更新,判断是否能到达(s>=m)即可。代码实现:#include <bits/stdc++.h>using namespace std;int main(
codeforces Div.2 899D Shovel Sale 大意: 给出一个数 n 求 1<= a , b <= n , 记 N = a +b 求末尾有最多连续的9的N,a,b 有多少(无序)组。两组是不同的当且仅当 有一个数不同。样例解释: input 14 output 9 hint: In the example the maximum number of nines at the end of total cost of two s
codeforces Div.2 899C Dividing the numbers 大意: 划分1-n的集合,将其分为两个,要求两个集合的和之差最小。 求集合(任意输出)思路: 容易想到,首位配对的方法去取出来,差值必为0或1(差值为绝对值) 难点在选取。 现在知道差值为0或1 按照奇偶分为两个集合 从后往前检查,如果差值不为0或1 那么讲两个数字交换,交换后必然导致差值-2 当差值为0或1的时候,停止交换,即为答案。实现代码:#include <bits/s
codeforces Div.2 899B Months and Years 大意: 判断一个连续的月份数组是否正确思路: 没被hack,挂了(惨) 没有考虑完全,需要的数组应该包括 平年 平年 平年 闰年 平年 平年 平年 暴力查询匹配即可。
codeforces 900C. Remove Extra One 原题链接: 900C大意: 给出一个1-n的排列的一个数列,若对 ai 满足 ai>aj(j#include <bits/stdc++.h>using namespace std;#define mem(s,t) memset(s,t,sizeof(s))#define D(v) cout<<#v<<" "<<v<<endl#define inf 0x3f3f3f3f#define p
kuangbin专题一 简单搜索 题解思路 近来想起来补一下基础,确实从基础题里还能学到很多,搜索这方面更是自己所欠缺的,总结一下简单搜索的结题思路。A - 棋盘问题 - POJ 1321 思路: 不规则棋盘上的八皇后问题,回溯检查一下即可。B - Dungeon Master POJ - 2251 思路: 三维的迷宫,向六个方向bfs,跟平面迷宫一样。C - Catch That Cow POJ - 3278 思路: 1xN
中缀表达式建立表达式二叉树 直接建立需要分析优先级,括号在最底层,+-比*/深度低。 这里直接采用之前的代码,先将中缀表达式转化为后缀表达式。后缀表达式直接建立表达式二叉树。 利用栈即可。 中缀转后缀 栈内保存树的指针。 每读入一个字符,都建立一个节点并把地址压入栈,遇到运算符就弹出栈顶两个节点,建立一个新的树并将树根地址压入栈。如ab*-(c-d)/e+f实现代码:d_tnodel.h#ifndef TREE_LI
中缀表达式转后缀表达式 && 后缀表达式计算 数据结构课程实验题目,很长的模板类…值得去存一下。 主要实现原理: 后缀表达式又成为逆波兰表达式,在sicp里面有讲过,简单的加减乘除可以用栈很快写出来,但是要用到括号,幂运算等就要整理出符号的优先级,根据优先级的比较决定是否进行入栈。 ps.先占个坑#include <iostream>#include <cstdio>#include <cmath>#include <algorit
Shuffle'm Up POJ - 3087 扑克牌洗牌 记忆化+搜索 题目链接: POJ-3087 题目大意: 两个长度相同的字符串表示两副扑克牌,按s2-s1-s2-s1…s2-s1的顺序一次叠加,称为一次洗牌操作,洗牌后上半部分为new s2 下半部分为new s1 ,现在要求洗牌多少次可以达到某个特定序列,如果不能输出-1思路: 因为只有一条路可以走,勉强算是个搜索。 拿n=3实验一下可以发现,循环到原来的串了,因此只要map判断串是否出现过,即可判断
非常可乐 HDU - 1495 倒水问题 BFS && 数论解法 题目链接: 非常可乐大意: 有 m,n,s 三个不同容积的杯子,一开始 m,n 瓶为空,s 瓶是装满的,问在多少步内能平分成两个 s/2 的情况。 若不能,输出《NO》思路: 一开始想到了gcd写法,还没想好,再补。 不会的话只能用 BFS 慢慢写了,题目卡时间有点过分,写残一点就会T,注意细节优化,以及不必要的空间申请,不必要的修改。Node结点储存 三个杯子的状态以及当前操作数。具体实现
Audiophobia UVA - 10048 Floyd变形 题目链接: Audiophobia UVA - 10048 题目大意: 给一个无向图,有 c<=100 个点,s<=1000 条边,q<=10000 个询问,求给定两点之间的路径上的最大边权值最小。思路: 规模较小,据说可以用 MST 和 LCA做。 直接用Floyd做即可。需要注意的是 d数组的初始化。按照一般的做即可,即 d[i][i]=0 ,不连接的记为 inf注意d[i][j]=mi
Calling Circles UVA - 247 打电话 强连通分量 题目链接: Calling Circles 刘汝佳紫书单源最短路例题之一。 题目大意: 有一群人打电话。如果有两个人互相打电话(直接或间接:a打给b,b打给c,c打给a,那么称 a 和 c 满是间接关系),求输出所有电话圈。 Limits:<=25思路: 用 Floyd 算法跑一遍即可,再求出连通分量。具体题目按照Uva惯例,输入输出比较繁琐。样例输入: 5 6 Ben Alexan
codeforces Pride 892C 题目链接: 892C Pride 大意: 给出一排数字,对这一排数字做一些操作如下: 每次对相邻的数字取 gcd,将结果赋给其中一个值。 求最少需要多少次操作 使得所有数字全为 1思路: 先考虑有解的情况。 如果有 1,那么直接对应gcd下去就能出解。 那么如果没有1呢? 1 一定来自某两个上一级 gcd,上一级的 gcd 来自上上一级的 gcd 因此,只要暴力循环下去,求相邻
codeforces -891B Gluttony 排列,构造题 题目链接: Div.2 D 大意: 给出一串数字,a[n],现在要求构造出一个 b[n],bn是an的一个排列,且满足以下条件: 对于 a 和 b 的 任意相同位置对应的子集和,都不能相等。 即 a 对应是 1 4 8 2 b 对应可以为 2 8 1 4 第 1 2 3 个位置对应的子集和为 sum{1,4,8}≠sum{2,8,1}sum\{1,4,8\} eq sum\{2,
Catch That Cow POJ - 3278 图论模型 BFS 在 [0,+∞)[0,+∞) 一行上有A,B两个位置,A要通过一些操作到达B点,求最短操作数。操作为左右移动一个单位或者坐标翻倍。 AB坐标<=(N=1e5) 分析: 构建BFS模型。node内保存位置和操作数。 坑点: 没注意 0 也符合题意,设置判断范围时要取 2*N 才合理。#include <string>#include <cstring>#include <cmath>#
Dungeon Master POJ - 2251 BFS 邝斌系列 最短路模板题 看样例就懂了:3 4 5S.....###..##..###.#############.####...###########.#######E1 3 3S###E####0 0 0多加两个方向,向上和向下即可。#include <string>#include <cstring>#include <cmath>#include <algo
#443 Div.2 B. Table Tennis 排队游戏 && 细节 B. Table Tennis题意看错好几次。。。 n people are standing in a line to play table tennis. At first, the first two players in the line play a game. Then the loser goes to the end of the line, and the winner play
#442 Div.2 AB &C. Slava and tanks 思维题 A. Alex and broken contest 大意: 求解一个字符串里是否有唯一特定的一些串,查询即可。 竟然被hack了。。substr函数写错了。string substr (size_t pos = 0, size_t len = npos) const;//第一个参数为起始位置,第二个参数为长度B. Nikita and string 大意: 一个只包含a和b的字符串,求
#440 Div.2 D.Sorting the Coins 硬币排序问题 原题链接: sort the coins 大意: 一排硬币排成一排,有两种硬币,把其中一种按照两两交换的规则归到右侧,求需要归并多少次才能把所有这种硬币归到右侧。分析: 由于硬币是按照时间顺序放的,容易想到第n个答案和n-1个答案必然存在某种关系。找规律可以发现: 每次放置一个新的点,答案都比前一个多一,当这个点放在末尾时,相当于回退一个。 每次移动后 每个硬币就是在它的下一个非法硬币的
#440 Div.2 B. Maximum of Maximums of Minimums 水 原题链接: B. Maximum of Maximums of Minimums 大意: 分成 k 个不重合的连续子串,即一个“划分”,求最小值的最大值。分析: 被坑了,给自己长个记性,答案初始化成 0 了,最大最小值都记得初始化为inf,把答案忘了,务必把所有ans,minn,maxn初始化输入的值。具体实现:#include <bits/stdc++.h>using namespace
[模板]kmp算法 很详细的参考资料: July大神的从头到尾彻底理解KMP有三个对应关系:Next 数组存的是 到当前 j 位置前的 的最长相同前缀后缀长度。与此类似的是 最长长度表,是 到当前 j 的位置 的最长相同前缀后缀长度。两者存在平移一个单位关系。模式串的移动。失配时,模式串向右移动的位数为:已匹配字符数 - 失配字符的上一位字符所对应的最大长度值具体实现://s 为母串, t 为模式串int
#439 Div.2 C. The Intriguing Obsession 组合数学 原题链接: C. The Intriguing Obsession大意: 有若干个小岛,由三种颜色组成,现在在小岛之间添加桥,桥的长度为1,要求相同颜色的小岛之间的路长度不小于三,求有多少的方法。思路: 可以看成一个三棱柱,每条棱代表一个颜色,易得棱上没有线段相连,那么考虑一个面上的线段连法。易得 不能有两个 A 棱上的点同时连到 B棱上的相同点。 线段数 i 从 0~min(a,b) ,对于
Olympic Parade UVALive - 7181 卡时间空间,哈希 Olympic Parade UVALive - 7181 大意: 多组样例,每组样例给一个 N 和 K ,给出 N 个数字,求数字出现的次数不为 K 的倍数的那一个。样例输入: 10 3 1 1 2 3 1 3 3 2 2 2 输出: 2 Hint: 有3个1,4个2,3个3,故答案为2。分析: 各种卡时间,unordered_map也不行,用位运算分析优化。处理
最长不减子序列变形 The Heaviest Non-decreasing Subsequence Problem 南宁网络赛 题目链接: The Heaviest Non-decreasing Subsequence Problem 南宁网络赛大意: 给一个串,每个数字有一个权值,负数权值为 0 ,若数字大于10000 其权值为 5,并减去 10000 。 其余权值为 1。分析: 容易想到,读到负数忽略。读到 >10000 做处理,将这个数复制 5 遍放进去,转换为权值为 1 ,那么求一个最长不减子序列,len 就
[模板] exgcd模板解不定方程 #include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair <int,int> pii;#define mem(s,t) memset(s,t,sizeof(s))#define D(v) cout<<#v<<" "<<v<<endl#define inf 0x3f3f3f3f#define