- 博客(53)
- 收藏
- 关注
原创 (pywin32)解决keybd_event在游戏中失效
pywin32是python调用win32完成windows系统功能调用的第三方库,实质就是调用的win32,so这个方案也可以解决C++的相同问题。 为什么keybd_event在notepad++等普通软件上可用而游戏中不行 http://zhidao.baidu.com/link?url=0bSo71kDyJIvKfUVvhnjKvPd7yd2z6BkJ6qM6onsNciXKNyV
2016-09-18 23:53:14 16999 8
原创 Mac Shell获取昨天日期
Mac Shell获取昨天日期找了半天都是linux的date,在mac上获取昨天日期是不行的,总结一下Mac内核貌似是freeBSD?date -v-1d +"%y%m%d" #获取昨天的日期date -v-1m +"%y%m%d" #获取前一个月的日期date -v-1y +"%y%m%d" #获取去年今日日期以此类推哦 linux的简单了,网上一堆=。=
2016-04-22 13:22:45 4464 1
原创 机器学习分类算法(一)——余弦相似度
概述:余弦相似度是通过测量两个向量点积空间夹角的余弦值来判断相似性。0°角的余弦值是1,90°为0,余弦值大小在[-1,1]区间。数学原理: 向量:空间中有两个点原点O和点A,OA(O指向A)就是一个向量,向量是有长度有方向的。 点积(内积): = ∑(Oi*Ai) 向量长度: ||A||= sqrt() = sqrt(∑A*A)
2015-11-23 20:52:58 8630 1
原创 MAC上安装PIL(解决)
还是年轻啊~仅仅用pip install PIL 是不行的,有很大几率会出现: 1.pip找不到包 2.#include <freetype/fterrors.h> ^ 1 error generated. error: command 'cc' failed with exit status 1 解决方法嘛……ln -s /usr/loc
2015-09-01 11:51:21 4891
原创 拉格朗日插值python实现
拉格朗日插值公式 其中 也就是两层for循环,内层求Pj(x),然后与外层的yi相乘结果存在返回值中,主要注意公式中相乘的条件是i!=j 代码如下:import matplotlib.pyplot as mplimport numpy as npimport scipy as spa = np.zeros(10)b = np.zeros(10)for i in range(len(a
2015-08-27 21:36:06 11230
原创 解决Mac上PyDev无法导入某些模块的问题
前一阵一直在恶补数学知识,昨天突然打开Mac上的Pydev发现有些模块不能正确引入,很奇怪的现象=。=后来查知自己在pip的时候不小心下了个python2.7.10并把opencv依赖到这个版本的python上了!而本机自带的python2.7.6是通过pip默认安装模块的那个版本。2.7.6里可以引入scipy、matplotlib但是不能用cv2,而2.7.10里只能引入neuro
2015-08-27 20:14:32 1590
原创 机器学习——Mac下机器学习python配置
简介安装pip安装prot安装mlpy等机器学习模块安装opencv并配置到python2.7上搭建基于eclipse的pydev环境1.简介 首先,选择Mac是因为省事,因为其预装了R和python,我用的是OS X Yosemite 10.10(黑苹果 穷人买不起白苹果就用小y做了个黑苹果T^T)所以学习机器学习实践的两大语言都不用下载安装了,但是python需要配置一下,我的10.
2015-08-18 02:02:22 3908
原创 python快速使用(三)类、异常
类的使用异常使用python机器学习常用包简介与导入类的使用# -*- coding: utf-8 -*-"""Created on Wed Aug 12 19:35:37 2015@author: haoran"""#how to use classclass Persion: name='' #声明成员变量 age=0 sex=''
2015-08-15 09:55:13 570
原创 python快速使用(二)python面向过程编程
今天的笔记记录昨天学习python面向过程编程的内容,分为:python基础数据类型基本输入输出比较高级的数据类型python各种判断、循环语句和函数的声明一些零碎的小知识ps:python2和python3有比较大的区别,我用的版本是2.7,之所以用这个版本是因为2的支持目前比3略好(谁让人家出的早)而且速度快些,现在2和3版本是同时跟进更新的,所以不用怕2被淘汰而不去学1.基础数据类
2015-08-13 16:46:07 1161
原创 python快速使用(一)概要
一门现代语言(主流)大致分两种,一种类C语言,另一种类shell脚本语言,python是比较像C但是更shell化的语言(脚本style),常用C、C++和java的话转入脚本语言可能费点劲,因为‘脚本语言’语法没有那么条条框框般的严谨,一句不需要’;’结尾,python的句块还没有用’{}’引起来而是用若干空格缩进代表是某个语句的句块范围(这样做代码风格会好看些但是从C、C++等’正规’语言转入的
2015-08-12 22:41:57 534
原创 机器学习——朴素贝叶斯分类器
假设现在要构建一个网络图书馆,我们可以给新进来的书贴上若干个标签,没有机器学习算法的情况下,我们需要给这些书手动分类,是计算机类的呀,还是非计算机类的呀,是小说类的呀,还是非小说类的云云。 那么,我们可以通过让程序自己学习如何通过一本书上的若干标签来进行图书类别的区分,这样就可以节省很多人力,这也是机器学习的魅力体现。机器学习的基本原理是通过开发者给出这个程序一个学习集进行学习,再通过用户给的
2015-08-02 18:10:04 1051
原创 R语言——下载配置R、加载包
工欲善其事,必先利其器。机器学习第一步,先熟悉语言,常用R和Python,先来配置R语言。R的安装文件和部分本地安装包见网盘 http://pan.baidu.com/s/1pJIbh8J 安装软件的过程不必说了,安装完毕后直接进入R Console,下载R包的方式有两种,一种图形化的,一种通过install.packages代码方式,个人推荐代码方式,方便快捷。图形化加载包略…… 下载某个包
2015-07-30 09:33:57 3587
原创 NYoj_DP_289苹果(01背包)
题意:裸01背包,第一行给出n个苹果和容量为m的背包,接下来n行为每个苹果的重量和价值。输出背包能装下的最大价值为多少。 思路:dp公式:dp[j] = max(dp[j],dp[j-cost[i]]+v[i]); 其中dp[j]的值代表当前背包剩余容量为j时最大价值。dp[j-cost[i]]为当前背包装入苹果i的时候(此时背包剩余容量为j-cost[i]),那价值就为dp[j-cost[i]
2015-04-08 21:23:17 669
原创 codeforces 294 div2.C
题意:三人组队必须由1名大神带2个菜鸟或者2个大神带1个菜鸟组成,问最多能组几支队伍,给出大神的数量n和菜鸟的数量m 思路:竟然想麻烦了,简单的贪心,因为队伍数量最多不过(大神+菜鸟)总数的三分之一(大神:菜鸟正好为1:2或2:1)而已,结果就是大神、菜鸟和(大神+菜鸟)/3最小的那一个 即 ans = min(a,b,(a+b)/3)
2015-04-08 20:23:06 787
原创 Codeforces 295 Div2 B.Two Buttons
题意:给两个数n和m,对n能进行两种操作:将这个数*2,将这个数-1,最后使得这个数可以等于给的另一个数m。问最少需要用多少步。 思路:贪心,转换思维,可以视为让m不断靠近n,首先需要判断n和m的大小,如果n比m大那只能通过n-m步对n进行–操作,这就是这种情况的答案。 如果m>n,那就尽量让n*2靠近m,也就是m/2,当m为偶数的时候就这样操作,奇数则m++,这样操作直到n>=m,再加上此时n
2015-04-07 21:08:31 717
原创 算法竞赛入门经典训练指南——例18 max(a[i]-a[j])且(i<j)
题意:如标题所示,给一个数组让你输出a[i]-a[j]的最大值,其中i#include <iostream>#include <cstdio>using namespace std;int a[10010],n,ans,maxi;inline int maxer(int a,int b){return a>b?a:b;}void input(){ for(int i = 0 ;
2015-03-26 13:49:52 1427
原创 ubuntu sublime 2.0 支持输入中文(本人原创)
首先在网盘里下载这个 http://pan.baidu.com/s/1gdvPvpT 然后进入下载目录并输入gcc -shared -o libsublime-imfix.so sublime-imfix.c `pkg-config --libs --cflags gtk+-2.0` -fPIC 下一步把生成的libsublime-imfix.so文件复制到用户根目录。 修改位于用户根目录
2015-03-04 21:37:18 539
原创 DP入门50题(7)——NYoj37 回文字符串
题意:给一个字符串,让你添加字符使其变成回文字符串,问最少添加几个 思路:开始真没思路,后来看别人的提示,可以把这个问题转化成上一题的思路——最长公共子序列问题。 就是把这个串反转,然后求这两个串的最长公共子序列,用原串长度减去最长公共子序列长度不就是要添加的字符个数啦! 代码:#include <iostream>#include <cstdio>#include <string>#
2015-02-24 17:32:21 630
原创 DP入门50题(6)——poj1458 最长公共子序列
题意: 以样例为例说明:abcfbc ***ab***f***c***a***b 最长公共子序列为abcb,长度为4 思路: dp[i][j]表示从S串的i之前到T串j之前最长公共子序列的长度 如果s[i-1] == t[i-1], dp[i][j] = dp[i-1][j-1]+1; 否则dp[i][j] = max(dp[i-1][j
2015-02-24 17:23:34 568
原创 DP入门50题(5)——NYoj 17 单调递增最长子序列
题意:正好跟上题导弹拦截相反,只不过单调递增而已。 解法:就是上一题的a[j]>a[i]改成a[j]#include <iostream>#include <cstdio>#include <cstring>using namespace std;int Max(int a,int b){return a>b?a:b;}char s[10002];int n,dp[20002],an
2015-02-24 17:09:39 559
原创 DP入门50题(4)——NYoj79 导弹拦截
题意:一种导弹拦截系统,有个缺陷,第一发炮弹能达到任意高度,但以后的炮弹都要比上一发低,问某政府只能买一套系统,最多能拦截几发炮弹。 思路:导弹拦截是经典动态规划题,这个问题其实可以看做是最长递减序列,每一发炮弹都要低于前一发的高度。那就用dp[i][j]表示j之前有多少个比i小的炮弹,取最大的就是当前dp[i][j]的值。也可以看做最长上升序列把判断条件反过来而已。代码: 这里用一维写的#i
2015-02-24 16:53:07 626
原创 DP入门50题(3)——poj2229 sumsets
题意:求n的以2的次幂之和的形式组成的方法有多少种思路: 类似递推关系,还要考虑n的奇偶性: 首先: dp[1] = 1; dp[2] = 2; 然后开始考虑从3开始: 当n是奇数的时候,dp[i] = dp[i-1]; 当n是偶数的时候,dp[i] = dp[i-2]+dp[i/2];#include <iostream>#include <cstdio>using namesp
2015-02-23 22:20:21 669
原创 DP入门50题(2)——NYoj252 01串
题意: 知道某一01串的长度,但他想知道不含有“11”子串的这种长度的01串共有多少个,他希望你能帮帮他。 注:01串的长度为2时,有3种:00,01,10。思路: 从长度为2开始考虑,有00,01,10三种; 长度为3,有000,001,010,101,100五种; 长度为4,有0000,0001,0010,1010,0101,1001,1
2015-02-23 22:09:28 644
原创 DP入门50题(1) ——poj3176 数塔(详细、适合新手)
前天开始复习以前的烂摊子——DP,然后到今天,水了十二道题,现在回头边敲边写博客回忆一下。这是第一道题,也是一般ACMer的DP入门第一题吧 ^_^ 题意:大家也都知道的,输出从数塔第一层走到最后一层路径的最大值。思想:直接从底向上回溯就好了,比较直接,没有直接去套背包写的,适合新手看;首先把dp数组memset全为0,然后把数组最后一层a[n-1][i]的值赋给dp最后一层dp[n-1][i],
2015-02-23 21:45:04 842
原创 poj3262 比率贪心
题意:农夫要把满农场吃花的牛牵回去,每头牛牵回去需要花ti的时间,每头牛每秒吃ci个花,问把所有牛牵回去需要花费最少花的数量,其中ti时间需要x2,并且牛在牵走的过程中不吃花. 思路:一开始我贪心策略想错了,以为单纯按照时间长短来贪,然后再比较花费,后来发现得出答案是错的,有逻辑问题,简单取几个极限就可以证明,其实正确的贪心方法是按照比率来贪,以后遇到这样的就有经验了,按照时间和花费比从小到大排序
2015-02-20 11:30:25 1016
原创 poj 1862 还是哈夫曼思想贪心
题意:科学家发现一种奇怪的玩意,他们有重量Wi, 如果他们碰在一起,总重变成2*sqrt(t1*t2)。 要求出最终的重量的最小值。思路:果然A题多点经验就用上了,跟农夫锯木头那个一个思路,哈夫曼思想,把所有重量放堆里,每次取俩最小的处理再放堆里,最后堆剩下的最后元素就是答案了代码:#include #include #inclu
2015-02-19 22:32:27 629
原创 poj1017 贪心 思维 好题
题意:运输公司有6种规格的物品各若干件:1*1 , 2*2,3*3 ,4*4,5*5,6*6的,这六种物品都要放在6*6的箱子里运输,让你求出最少用多少个箱子。 解题思路:有两种方法来做,第一种特别繁琐,也是最直接的解决方式,那就是根据常识来贪心并模拟,代码量很大,另一种和这个贪心一个思路,实现的时候非常简便,下面是贪心的大致思路: 6*6的只能用单独的箱子来放;
2015-02-15 19:37:33 1104 1
原创 poj3190 区间贪心 + STL
题意:n头任性的牛,每头牛都要在自己的时间段里挤奶,问最少用多少个挤奶槽并输出每头牛所在的挤奶槽的编号(从1开始)思路:目标明确,求最少用多少奶槽,并输出如何分配,明显区间贪心,找贪心的方向,就是对时间的最末端进行贪心。简单来说,先把奶牛们的时间输入并按开始时间进行排序,然后依次把有序的时间段都放入堆中,在此过程中每次取出堆中末端时间最小的和当前放入堆的时间段进行比较,如果能放到同一个槽就
2015-02-13 00:03:06 607
原创 poj1328 区间贪心 雷达覆盖岛屿
题目地址传送门:http://poj.org/problem?id=1328题意:给若干的岛屿坐标和雷达覆盖半径,让你在海岸线(X轴)上建立雷达站以覆盖所有岛屿,求出最少需要多少个雷达,如果不能覆盖全部就输出-1思路:典型的区间贪心,先考虑不能完全覆盖的情况,就是如果半径小于岛屿y轴高度(这个现实生活中倒是有可能出现),或者雷达覆盖面积小于等于0(这个显然扯犊子),还有一种就是岛的
2015-02-10 17:39:59 1009
原创 poj2376区间贪心
题意:给出n段区间和区间长度T(从1开始),以下n行为每段区间的首位地址,求最少需要几段将所有区间覆盖,如果不能全覆盖就输出-1.
2015-02-09 23:32:03 596
原创 poj2287 田忌赛马
题意:田忌和齐王各有n匹马,想办法尽可能让田忌赢更多的钱,赢一场200,输一场-200,平不扣。贪心思想:先拿田忌最好的马跟齐王最好的马比: 如果快则赢下,如果慢则用最慢的马跟齐王最快的马比 如果一样快则比较二者最慢的马: 如果田忌的慢马比齐王的慢马快则赢下 反之就用田忌的这个慢马跟齐王最快的马比(反正这匹马输定了,那就让它输
2015-02-09 14:14:34 808
原创 poj3253 哈夫曼贪心
题意:把木板切成长度如第二行(及以后)的n块(第一行为n)木板,且切断木板耗费的能量为当前木板本身的长度,想办法求出 所需最少能量并输出。 注意:输出结果要用long long 来存,int存不下 思路:先找问题切入点,求出所需最少能量,那就考虑怎样才能在给定的切割方案中寻找最省力的方案。 从这题给的数据来看就要倒过来想问题,也就是说把一段段切好的木板不断合拢回原来长度
2015-02-08 21:33:09 573
原创 poj3069贪心、思想、技巧
题意:设置哨兵位置,给一堆点,每个哨兵可以覆盖m米的地方(向前或向后),问如果把所有的点都覆盖到需要最少多少个哨兵点。 给一组数据,第一行两个数哨兵范围m和点的数量n 第二行n个点的位置 10 7 70 30 1 7 15 20
2015-02-08 20:41:13 592
原创 poj3617 贪心
题意:对给的字符串只能进行两种操作(从头或尾拿走一个字符),使得目标字符串字典序尽可能小题意明白了思路就清晰了,字典序尽可能小,就把头和尾进行比较,如果相同就比较打头第二个和倒数第二个的大小,直到出现较小的那个再将其(首 或尾--字符)输出,一样的话随便输出头尾字符都行,注意越界并且小心PE(80个字符换一行)。#include <iostream>#include <cstdio>#in
2015-02-07 17:03:55 561
原创 毛毛虫算法——尺取法
有这么一类问题,需要在给的一组数据中找到不大于某一个上限的“最优连续子序列”于是就有了这样一种方法,找这个子序列的过程很像毛毛虫爬行方式,我管它叫毛毛虫算法,比较流行的叫法是“尺取法”。 喏,就像图里的妹纸一样~ 还是举个栗子: Poj3061给长度为n的数组和一个整数m,求总和不小于m的连续子序列的最小长度输入n = 10,m = 155 1 3 5
2015-02-01 21:34:26 2896
原创 Linux 使用杂记(长期更新)
alias 给命令重命名,非常方便,相当于#define例: alias wj=’nautilus’ //’=’前面是重命名,后面引号里的是原命令就是把GUI文件管理器重命名为拼音缩写wj ,方便了许多,但是alias这个命令只能在这次打开的shell窗口才好使,也就是说你把当前的shell对话框关闭再打开刚才配置的重命名就不好使了。想每次打开都直接使用就修改 home/你的用户名/.
2015-01-19 14:35:19 491
原创 玩转vim系列——命令&操作篇
配置的过程我想单独写,这里我就介绍vi的一些常用(至少我觉得常用)命令和使用方法。vim三种模式:Vim打开文件直接cd到文件目录然后Vim 文件名如果当前目录没有文件,vim会自动创建这个文件。打开后并不能直接编辑,vim有3种模式:一般模式(默认进入的模式)编辑模式命令模式(通过输入 : / ? 这三个字符的任意一个进入)先介绍各个模式的作用和切换方法:
2015-01-18 12:00:14 605
原创 HDU 1003 MAX SUM 贪心
原来就写过的经典贪心,本来今天想用尺蠖法再写的,后来发现好像写不出来。。。其实也不太算贪心,就是从头扫到尾,找当前的子序列的大小关系:初始化sum和ans都为负无穷,然后从头开始扫,伪代码如下:sum if: sum t_start = t_end = i sum = a[i] if: sum > ans ans = sum; start = t_start
2015-01-13 16:24:37 595
原创 Codeforces Round #277.5 (Div. 2) A SwapSort 我自己写的奇葩代码竟然AC了。。。自己都觉得不可思议
就是模拟,考察基本功的#include #include #include #include #include #include #include #include #include #define maxn 0XFFFFF #define MAX 0xFFFFFFF#define lson l,m,t#define rson m+1,r,t
2014-11-19 21:29:32 584
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人