自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (10)
  • 收藏
  • 关注

写博客是个好习惯

    不记得上一次写博客是什么时候了。平常工作忙的像狗,周末有时也加班,空余时间太少。这周妹纸出差,难得清静。    这一年工作节奏还是蛮快的,参与开发5、6个系统,也学了做了不少东西,有技术性强的,也有边缘性的活,有前端、DB,也有框架、算法,还有线程、缓存、GC。搞技术的还是得总结一下自己学到的东西,拿出来晒晒,一来温故知新,二来也给后面遇到问题的人有个参考。    在这里先列个...

2015-06-28 01:36:59 274

原创 朴素贝叶斯在文本分类中的应用

       听过朴素贝叶斯的人,知道多项式朴素贝叶斯是神马,伯努利贝叶斯是神马吗?如果不知道,请继续读下去。      其实所谓的“多项式”或“伯努利”,只不过是在求先验概率和条件概率时统计方法不一样,基本原理没变。      贝叶斯分类算法(Naive Bayes)是一种基于统计的概率模型算法。在许多场合,朴素贝叶斯可以与决策树,SVM相媲美。它能应用到大数据中,方法简单且分类准确...

2013-08-29 16:50:02 1178

原创 分类算法综述

    分类的概念很简单,就是给出一个样本x,判断样本所属的类别y,分类器就是映射函数f: y=f(x)。当然,这个函数是需要根据以往的经验(大量已知类别的样本集)来构造的。这个构造的过程,称为训练,而如何构造,就是分类算法了。     数据挖掘中分类算法有很多,它们通过对已知类别训练集的分析,从中发现分类规则,以此预测新数据的类别。分类算法应用非常广泛,银行中风险评估、客户类别分类、文本...

2013-08-25 15:44:36 1558

解线性方程组——高斯消元法

 例:ZOJ3645 题意:高斯消元模板题(浮点型) /**高斯消元求解线性方程组.*/#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namesp...

2012-12-03 22:00:19 864

原创 ZOJ 2012.11月赛

    本来上周日(11.25)轮到我做汇报,PPT都写好了,看到ZOJ有月赛,便想练练手。   当时做比赛的时候已经三点了,看到DFIJ这四题出的比较多,就决定拿下这4道题。     J题(ZOJ3675) Trim the Nails    题意:指甲宽为m,指甲刀宽为n,单位均为毫米,但指甲刀是不完整的,'*'表示完整,'.'表示不完整。问最少剪几次可以剪完指甲。注意指甲刀可...

2012-12-01 15:02:58 189

原创 【转】STK8.1.1安装方法

STK简介    美国Analytical Graphics公司开发的STK卫星工具包软件,是航天工业领先的商品化分析软件。 STK可以快速方便地分析复杂的陆、海、空、天任务,并提供易于理解的图表和文本形式的分析结果,确定最佳解决方案。它支持航天任务周期的全过程,包括政策、概念、需求、设计、制造、测试、发射、运行和应用。STK/Pro 8.1.1提供分析引擎用于计算数据、并可显示...

2012-10-28 12:57:44 1886 1

原创 计算几何基础

    计算几何是研究几何目标在计算机环境内的数学表示,计算等方面的理论和应用。    首先必须理解向量的点积和叉积。点积一般用来计算投影,数学证明等。叉积用来判断相对方位,求面积等,叉积的模为平行四边形面积。    问题1. 如何判断两条线段相交   通过快速排斥实验和跨立实验。快速排斥实验室看以两条线段作为对角线的矩形是否相交,若不相交,则必定两条线段不相交;跨立实验是看其中一条线...

2012-08-17 15:51:51 177

原创 简单树形DP

    树形DP,即是在一颗树上进行DP,一般是有叶子节点状态推出根节点状态。结合几个简单例子分析。例1. POJ2342/POJ3342【题意】公司有n个人,每个人有价值vi,有一天举办年会,每个人都可以参加,但有严格的等级制度,参加活动时,不能同时出现a和a的上司,问如何才能使总和最大。【分析】每个人只有去和不去两种状态,设DP[i][0]和DP[i][1]分别表示第i个人...

2012-07-13 13:46:26 264

原创 最长上升子序列O(nlogn)

    最近在做单调队列,发现了最长上升子序列O(nlogn)的求法也有利用单调队列的思想。    最长递增子序列问题:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i<j,必有a[i]<a[j],这样最长的子序列称为最长递增子序列。   设dp[i]表示以i为结尾的最长递增子序列的长度,则状态转移方程为:dp[i] = max{dp[j]+1}, 1&...

2012-06-01 14:31:43 733 1

原创 单调队列及其应用

  单调队列即队列内元素单调递增或递减,删除数据可以在队头或者队尾,加入元素只能在队尾加入。  由于单调队列的队头一定是最小值,故查询为O(1);每个元素最多进队一次,出队一次,摊排分析下来仍然是O(1). 例1. 广告印刷【问题描述】最近,afy决定给TOJ印刷广告,广告牌是刷在城市的建筑物上的,城市里有紧靠着的N(N<=400000)个建筑。afy决定在上面找一块尽可能大的矩形放...

2012-06-01 13:57:22 231

平面最近点对问题详解

    在二维平面上的n个点中,如何快速的找出最近的一对点,就是最近点对问题。    一种简单的想法是暴力枚举每两个点,记录最小距离,显然,时间复杂度为O(n^2)。    在这里介绍一种时间复杂度为O(nlognlogn)的算法。其实,这里用到了分治的思想。将所给平面上n个点的集合S分成两个子集S1和S2,每个子集中约有n/2个点。然后在每个子集中递归地求最接近的点对。在这里,一个关键的...

2012-02-29 21:17:17 1237 1

组合数学——polya定理及其应用

    Polya定理    设有n个对象,G是这n个对象上的置换群,用m种颜色涂染这n个对象,每个对象涂染一种颜色,问有多少种染色方案?一种染色方案在群G的作用下变为另一种方案,则这两种方案当作是一种方案。    方案数为 POJ2409   题意:一家项链公司生产手镯。n颗珠子形成一个环,用m种颜色给n颗珠子染色,就得到了各种各样的手镯。但是,经过旋转和翻转使之吻合的算同一...

2012-02-11 19:48:21 965

组合数学——错排问题及其应用

    n个有序的元素应有n!个不同的排列,若一个排列使得所有的元素都不在原来位置上,则称这个排列为错排。错排公式推导    设n个数1,2,3...,n错排数目为Dn,对于其中任意一个数i:    (1) 数i分别与其他的n-1个数交换位置,其余n-2个数进行错排,共得到(n-1)Dn-2个错排;    (2) 对除数i以外的n-1个数进行错排,然后i与其中每个数互换,得到(n-...

2012-02-10 15:50:35 403

组合数学——鸽巢原理及其应用

    所谓鸽巢原理,即n+1只鸽子,只有n个巢,则至少有一鸽巢有两只鸽子。    鸽巢原理理解起来并不困难,有些题目需要转换一下。    POJ3770    题意:有n个数,可能相同也可能不相同,从中取出一些数,使它们的和能被c整除(c<=n),任意输出一种方案。    解:构造序列si,使得          s1 = a1          s2 = a1 +...

2012-02-10 13:20:15 429

数论——中国剩余定理(互质与非互质)

中国剩余定理     中国剩余定理是中国古代求解一次同余方程组的方法,是数论中的一个重要定理。     设m1,m2,m3,...,mk是两两互素的正整数,即gcd(mi,mj)=1,i!=j,i,j=1,2,3,...,k.则同余方程组:x = a1 (mod n1)x = a2 (mod n2)...x = ak (mod nk)模[n1,n2,...nk]有唯...

2011-12-24 10:38:18 1164

数论——欧几里得与模线性方程

欧几里得定理    对任意的非负整数a和和任意正整数b,有gcd(a, b) = gcd(b, a%b)    这个定理可以用来求a和b的最大公约数,假设a>b,时间复杂度为O(logb)。扩展欧几里得    它是欧几里得算法的推广,使它能计算出满足下列条件的整数系数x和y:ax + by = gcd(a, b)    注意,x和y可能为0或负数,用它来计算模乘法的逆...

2011-12-22 12:43:08 204

组合数学——容斥原理及其应用

    容斥原理是计数中常用的一种方法。在讨论容斥原理的过程中,要用到以下集合论的基本性质。德摩根(De Morgan)定理     若A和B是集合U的子集,则 例题HDU4059 The Boss on Mars题意:给一个数n(n=10^8),求X1^4+X2^4+..Xk^4的和模1,000,000,007,其中1<=Xi<n,且Xi与n互素。解:...

2011-12-20 19:21:10 615

原创 数论——欧拉函数与相关定理

    一个正整数n的欧拉函数定义为:在1到n-1之间和n互素的数的个数。    欧拉函数公式:phi(n)=n(1-1/p1)(1-1/p2)(1-1/p3)...(1-1/pk),其中pi为n的素因子。    例如,phi(12)=12(1-1/2)(1-1/3)=12*1/2*2/3=4。 相关定理    欧拉定理   对于任意正整数n>1, a^phi...

2011-12-20 16:57:12 436

数论——素数筛选法与整数的素因子分解

筛选法         求出n以内的素数,最快的应该是筛选法。 筛选法的思路是:     要求10000以内的素数,把1-10000都列出来,1不是素数,划掉;2是素数,所有2的倍数都不是素数,划掉;取出下一个幸存的数,划掉它的所有倍数;直到所有素数找完为止。     这种做法的空间复杂度是O(n),时间复杂度O(n/logn)。const int Max = 100000...

2011-12-18 09:41:58 358

原创 AC自动机——Aho-Corasick Algorithm

    初学者关于AC自动机的疑问:什么是AC自动机?为什么要学习AC自动机?学习AC自动机需要哪些知识?如何构造AC自动机及其应用?    1. 什么是AC自动机    AC的意思和KMP相似,是由Aho-Corasick这两个人创造的,用于多字符串匹配问题的算法。比如给你一个文本文件,再给你k个目标串,让你寻找这k个目标串是否存在在这个文件中。    2. 为什么要学习AC自动机...

2011-10-26 15:47:52 335

原创 Aisa Beijing Regional Contest-2011 Problem A 解题报告

    题意:有n个(n<=1000)城市,坐标都告诉你了,并且每个城市都有人居住,现在要修路n-1条路,使得每个城市都连通。显然,这就是一颗树。当然,边的权值就是两点的距离。条件:有一条边可以不用任何花费。问这条边的两端点的总人数/(包含这条边的最小生成树的总权值-这条边的权值)最大是多少。即(Wa+Wb)/(mst-w(a,b))最大。    解:其实这题是次小生成树的变形。首先可以...

2011-10-24 13:03:24 128

原创 竞赛问题升级版——ZOJ3348

    在上一篇中已经介绍了一种利用网络流求解竞赛问题的解法,构图共有n^2个点。但当比赛队伍逐渐增大时,比如n=60,就会有3600个点,采用网络流显然效率不高。这里再介绍一种更简单的建模方式。    解:    1. 还是假设DD赢下剩下的所有比赛,最高得分为high。    2. 对于剩下的比赛,随意定胜负。记录每位选手的得分score[i],用champ[i][j]表示i赢j的...

2011-10-20 16:19:08 132

原创 网络流经典模型之——竞赛问题SGU 326 Perspective

    停摆??停摆你妹啊!!2011-2012NBA赛季开已经打啦!你OUT了。    有n支队伍比赛,n<=20。已经打了一些比赛,并且知道了A赛区的队伍的目前得分。队伍i的目前得分为score[i],剩余比赛场次为remain[i],剩余场次包括同赛区和异赛区的比赛。用match[i][j]表示A区队伍的剩余的比赛情况,i和j剩余的比赛场数。当然,remain[i]>=sig...

2011-10-09 22:15:46 284

原创 网络流经典模型之——牛与牛棚

    模型:    有n个牛棚和连接n个牛棚的m条路径,n<=200,m<=1500。每到下雨天,牛都很讨厌自己的蹄子被打湿,所以在下雨前都要躲进牛棚里。当然,每个牛棚能容纳的牛的数量有限。现在每个棚内有若干只牛,问最短需要多少时间,使得所有牛都能躲到牛棚里去。    解:求最短时间,可以想到二分,然后判断可行性。首先在原图上求floyd,得到每两个棚之间的最短距离。拆点...

2011-10-09 21:35:25 266

原创 第36届福州赛区1009 Squiggly Sudoku 解题报告

    裸的DLX,比一般的数独酷稍微复杂点的就是处理输入,先dfs一下,然后建十字链表。    直接上代码了,跑得比较慢。#include <cstdio>#include <cstring>using namespace std;const int INF = 0x7fffffff;const int NN = 350;const int M...

2011-10-07 20:47:55 133

原创 最多不相交路径

    最长上升子序列是一个经典问题,可以用O(n^2)的dp解决。给出一个串,求出最长上升子序列的长度为多少?假设长度为s,现在问题是,有多少个长度为s的上升子序列,满足每个子序列所包含的元素均不相同(即一个数只能选一次)。    建模:    第一问直接用dp求解,dp[i]表示以i为结尾的最长递增子序列的长度,最后取dp[1~n]的最大值,即为s。    第二问可以利用上一问求出...

2011-09-05 21:07:39 1301

原创 最小点割集(点连通度)

      无向(有向)图G中,给定源点s和终点t,至少要删去多少个点(具体一点,删哪些点),使得s和t不连通。这个问题就是点连通度,也叫最小点割集。     一般最小点割转化到最小边割上,将原图中的点v拆成v'和v'',且w(v,v'')=1。对于原图中的有向边(u,v),则有w(u'',v')=INF;若是无向边,则还要加上边:w(v'',v')=INF。然后求以s''为源点,t'为汇点的...

2011-09-01 11:42:01 2562 1

原创 关键割边

    关键割边就是增加某条边的容量,使得网络的最大流增加。    步骤:    1. 求最大流,得到残余网络。    2. 在残余图上从s点出发dfs,得到割边(a,b)。    3. 从t点出发反向dfs,得到所有能到达t的点。    4. 对于某条割边(a,b),若b能到达t,则该边为关键割边。(因为从s到t的路径上只有这一条割边,增加这条割边,肯定可以增加流量)。 ...

2011-09-01 09:14:02 177

原创 第K短路

    所谓K短路,就是从s到t的第K短的路,第1短就是最短路。    如何求第K短呢?有一种简单的方法是广度优先搜索,记录t出队列的次数,当t第k次出队列时,就是第k短路了。但点数过大时,入队列的节点过多,时间和空间复杂度都较高。    A*是在搜索中常用的优化,一种启发式搜索。简单的说,它可以用公式表示为f(n) = g(n) + f(n),其中,f(n)是从s经由节点n到t的估价函数...

2011-08-31 21:25:36 361

原创 最小度限制生成树

    在一棵生成树中,某个顶点v0的度数<=k称作度限制条件,把满足这一条件的生成树称为度限制生成树,把权值和最小的度限制生成树称为最小度限制生成树。    如果撇开度限制条件,那么就是最小生成树问题。首先,避开度限制条件。假如把最小度限制生成树中所有与v0相关的边都删掉,得到m个连通分量。    具体步骤:    1. 如果k<m,显然无解。    2. 求最小m度...

2011-08-31 20:45:40 561

原创 最小割与最短路的转换(S-T平面)

    考虑如下问题:    一个牧场由R*C个点组成。牧场内有若干条运输通道,通道流量上限是Ci,连接水平或者垂直相邻的的点。(1,1)内有很多干草,Farmer John希望将干草运送到点(R,C)。问最大流量是多少。1<R,C<=200。    一种直观的解法:    将每个站点看成点,相邻的点之间有边,流量上限为Ci。将(1,1)作为源,(R,C)作为汇,求最大流即...

2011-08-23 19:07:37 501

原创 有向图——最小点基和最小权点基

    考虑这样一个问题:    老师想通知他的所有学生一个消息,虽然他手上有他们的联系方式,但是一个一个联系太耗时间和电话费了。他知道其它人也有一些别人的联系方式,这样可以通知他人,再让他们去通知一下别人。现在要求出至少需要联系多少人,最少需要多少花费,使得所有的人都被通知到。    上述问题可以抽象为:图G中,每个点都有一个权值,若a能联系到b,则连边(a,b)。选出最少的点数(或者权...

2011-08-21 16:17:04 394

原创 HDU3957 Street Fighter

    比赛的时候知道是最小支配集问题,想到了用DLX,不过没能A掉。    题意:    街霸游戏中,有n种角色,每种角色有1~2种人物,比如说Ryu有两种人:Metsu Hadoke和Metsu Shoryuken。Ryu用Metsu Hadoke可以轻易打败Chun-Li,用Metsu Shoryuke可以打败Ken。从n种角色中选出哪些角色在那种人物上,可以击败其余的任何角色的任何...

2011-08-21 15:44:29 149

原创 DLX——Dancing Links

    Dancing Links是Knuth教授在近几年来写的一篇文章,是一类搜索问题的通用优化。它主要利用双向十字链表来存储稀疏矩阵,来达到搜索中的优化。在搜索问题中,矩阵会随着递归的加深会变得越来越稀疏,这种情况下用dancelinks来存储矩阵,往往会达到很好的效果。    核心代码:    对于熟悉双向链表的人,一定不会陌生:L[R[x]] = L[x]R[L[x]] =...

2011-08-17 18:43:23 173

原创 网络流之--最小点权覆盖和最大点权独立集

    二分图最小点覆盖和最大独立集都可以转化为最大匹配求解。在这个基础上,把每个点赋予一个非负的权值,这两个问题就转化为:二分图最小点权覆盖和二分图最大点权独立集。     二分图最小点权覆盖    从x或者y集合中选取一些点,使这些点覆盖所有的边,并且选出来的点的权值尽可能小。建模:    原二分图中的边(u,v)替换为容量为INF的有向边(u,v),设立源点s和汇点t,将...

2011-08-14 20:49:39 429

原创 网络流之--混合图的欧拉回路

基础知识    欧拉回路是图G中的一个回路,经过每条边有且仅一次,称该回路为欧拉回路。具有欧拉回路的图称为欧拉图,简称E图。    无向图中存在欧拉回路的条件:每个点的度数均为偶数。    有向图中存在欧拉回路的条件:每个点的入度=出度。    欧拉路径比欧拉回路要求少一点:    无向图中存在欧拉路径的条件:每个点的度数均为偶数或者有且仅有2个度数为奇数的点。    有向...

2011-08-14 20:19:23 544

原创 初识网络流

    最近开始学网络流了,原来或多或少接触过最简单的最大流问题:    一个公路网,每条公路都有一定的车载上限,问整个网络最大的车流量是多少。这个问题可以形式化为:定义:给有向图G中的每一条弧(u,v)赋予一个值f(u,v),并规定两个点s和t。如果除了s,t外的任意一个节点i,都有sum{f(u,i)}=sum{f(i,v)}。那么我们说f是一个流,并把s成为源(source),t称为...

2011-08-03 16:59:17 169

C++——指针,堆栈,引用,函数

一. 指针    声明: int *a = 3;   声明了一个int类型的指针变量a,初始值为3。    赋值: int b = 3; a = &b; 将变量a的值(即地址)指向b,得到 *a == 3。指针的好处:    1. 处理堆中存放的大量数据;    2. 快速访问类的成员数据和函数;    3. 以别名方式向函数传递参数。const与指针:  ...

2011-07-16 12:21:59 310

原创 2-SAT

    2-SAT是求解一组逻辑变量表达式(avb)^(cvd)...(xvy)=1成立的问题,称为适定性问题(Satisfiability),简称SAT。    对于逻辑表达式(xvy),构造有向图G,也就是说,x和y至少选一个:如果不选x,肯定要选y;不选y,肯定要选x。在图G中添加两条有向边(~x,y)和(~y,x)。    对于逻辑表达式(x^y),x和y都要选:若选x,则必选y(...

2011-06-15 15:37:00 189

次小生成树

    最小生成树的算法想必大家都很了解,主要有kruskal和prim。但如果要求次小生成树(即第二小的生成树)呢?    一种容易想到的方法是枚举删除最小生成树上的边,再求最小生成树。用kruskal这种算法的复杂度为O(n*elog2e),当图比较稠密时,复杂度接近O(n^3)。    但有一种更简单的方法:先求最小生成树T,枚举添加不在T中的边,则添加后一定会形成环。找到环上边值第...

2011-04-26 13:43:59 164

GEP—基因表达式编程

基因表达式编程属于众多分类算法中的一种,它与遗传算法联系紧密。

2010-06-06

详细解析后缀数组(RMQ及LCP)

后缀数组的应用受到越来越多人的关注,本文详细介绍了后缀数组的基本原理以及LCP—最长公共前缀。最后给出了几道例题及解析。

2010-06-06

通讯录(JSP+MySql+Html+JavaScript)项目实例及源码

myEclipse内置Tomcat运行,可实现基本的增删改查。管理员可以对用户信息和用户通信录进行各种操作,用户登录后可查看自己的通讯录。

2010-08-10

ACM 常用算法(数论,图论,搜索,动态规划,几何)

内涵盖ACM中的数论,图论,几何,动态规划,收索等经典精简代码模板

2010-06-19

数据挖掘:决策树算法及其应用

决策树算法是模式识别中用来分类的算法,效率较高

2010-06-06

C#贪食蛇(源代码)

贪食蛇游戏是一款比较经典的单击小游戏,运用C#中的graphics及图形界面设计。

2010-06-06

C#基本知识及应用(.net平台)

介绍.net平台下C#基本语法,CLR工作机制等。给出实例,快速入门

2010-06-06

ACM国家集训队论文(2007)

北京 高逸涵 与圆有关的离散化 四川2 王晓珂 解析一类组合游戏 湖南 仇荣琦 欧拉回路性质与应用探究 广东 余江伟 如何解决动态统计问题 福建 杨 沐 浅析信息学中的“分”与“合”

2010-06-19

ACM 2004年国家集训队论文

许智磊_后缀数组,杨思雨_伸展树的基本操作与应用,贝小辉_浅析树的划分问题,林涛_线段树的应用,薛矛_解决动态统计问题的两把利刃

2012-07-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除