自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiefubao的专栏

业精于勤荒于嬉,行成于思毁于随

  • 博客(218)
  • 收藏
  • 关注

原创 匹配子轨迹

#include #include #include #include #include #include #include #include #include using namespace std;const int Max = 1000;const double coe = 0.01;const double INF = 1e10;struct point{

2016-11-01 11:39:06 697

原创 相似度(参数调节代码)

// test1.cpp : Defines the entry point for the console application.//#include #include #include #include #include #include #include #include #include #include #include #include #include

2016-10-21 14:24:53 804

原创 计算轨迹相似度代码

// test1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include #include #include #include #include #include #include #include

2016-10-18 21:24:55 8933 5

原创 四子棋

#include #include #include #include #include #include #include #include #include #include #include using namespace std;int move[4][2]={ 0,1, 0,-1, 1,0, -1,0};const int M

2016-03-06 00:57:51 1686

原创 正则匹配

bool isMatch(string s,string format){ if(s.size()==0) { return format==""||format=="*"; } if(format.size()&&s=="") { return false; } if(s[0]==format[0]||fo

2016-01-11 17:52:41 440

原创 321. Create Maximum Number(贪心)

Create Maximum NumberGiven two arrays of length m and n with digits 0-9 representing two numbers. Create the maximum number of length k  from digits of the two. The relative order of the dig

2015-12-25 19:42:21 1386

原创 poj 1986(离线查询点对最近公共祖先)

题意:给一棵树,查询一些点对的距离解法:随便找一个点建立有根树,然后转化为求点对最近公共祖先问题。两点的距离等于他们与最近祖先的距离和。查询的方法是dfs+并查集离线查询。思想是,dfs过的为回溯的点的parent全部指向自己本身,vis标记为true。回溯之后的点parent指向自己的父亲。然后dfs每进入一个点,就处理这个点相关的查询,如果其中某个查询另一个点v的vis为true,

2015-12-21 11:19:51 859

原创 vim配置(.vimrc)

set nocompatible              " be iMproved, requiredfiletype off                  " required"set the runtime path to include Vundle and initializeset rtp+=~/.vim/bundle/Vundle.vimcall vun

2015-12-07 23:02:24 756 1

转载 监督学习(机器学习)

一、引言  本材料参考Andrew Ng大神的机器学习课程 http://cs229.stanford.edu,以及斯坦福无监督学习UFLDL tutorial http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial  机器学习中的回归问题属于有监督学习的范畴。回归问题的目标是给定D维输入变量x,并且每一个输入矢量x都有对应的

2015-11-06 22:29:33 2665

原创 hihocoder1033(数位dp)

题目:/******************************************************* @author:xiefubao*******************************************************/#pragma comment(linker, "/STACK:102400000,102400000")#include #

2015-05-22 19:53:56 1183

原创 hihocoder1170(状压dp)

题意:小冰的N个机器人兄弟排成一列,每个机器人有一个颜色。现在小冰想让同一颜色的机器人聚在一起,即任意两个同颜色的机器人之间没有其他颜色的的机器人。假设任意相邻的两个机器人可以交换位置,最少需要多少次交换?N解法:一个明显的结论是:交换机器人时,相同颜色的机器人不会发生交换(保持他们之间的相对顺序)。即相当于给16种排序颜色。这总共有16!种结果,其dp方法雷同于旅行商问题的方法。

2015-05-17 15:39:45 848

原创 poj2411(状态转移,dfs搜索转移)

题目链接题意:用1*2的小矩形拼成n*m(n,m解法:状态压缩,dfs求转移。当前一列的状态确定后,后一列必须用横向的矩形来填补前一列的空白格,所以前一列不为空时,这一列可以选择也为空让下一列来填补,或是本列来个纵向的矩形填补(如果有连续的两个空格的话)。代码:/**********************************************

2014-12-04 17:10:03 838

原创 hdu 5136(dp计数)

题目链接题意:直径为K的每个点的边数不超过3的相互不同构的树有多少种?解法:把树的直径拉开,两边就是两棵二叉树了。子问题:一个深度为m的不同构的二叉树有多少种?dp[i]表示深度为i的个数。sum[i]表示dp的前缀和。转移方程就是:dp[i+1]=dp[i]*sum[i-1]+dp[i]+dp[i]*(dp[i]-1)/2;然后回到原问题:如果K是偶数(想象中间有个虚

2014-12-04 00:34:09 1524 2

原创 poj1482(隐式图求最短路)

题目链接题意:补丁在修正bug时,有时也会引入新的bug。假定有n个潜在的bug m个补丁,每个补丁用两个长度为n的字符串表示,其中字符串的每个位置表示一个bug,第一个串表示打补丁之前的状态('-'表示该bug必须不存在,’+‘表示必须存在,0表示无所谓,第二个串表示打补丁之后的状态(-'表示不存在,’+‘表示存在,0表示不变)。每个补丁都有一个执行时间,你的任务使用最少的时间把一个

2014-12-04 00:22:20 1186

原创 poj2983(差分约束系统)

题目链接:http://poj.org/problem?id=2983题意:一天南北线上有n个防御站,给出他们之间的位置关系,问有没有可能存在这样一种位置布置符合所给的位置关系。关系有两种,一种是 P A B X,表示A在B北边X光年的位置,V A B表示A在B北边至少1光年位置。解法:查分约束。dist[A]-dist[B]>=X,表示A在B北边至少X光年位置。变形为:d

2014-12-03 23:49:47 1293

原创 uva1627(模型转换01背包)

题意:有n(n解法:如果两人不是相互都认识,就连一条无向边。所以就变成了一个无向图。对于每一个连通分量来说,必须是个二分染色图,否则就No solution。然后对于每个联通分量,黑白两种颜色有个数量差,用所有的差来进行01背包,找到距离集合差0最小的方案。代码:/******************************************************

2014-12-01 16:31:07 1464

原创 poj1160(区间DP)

题目链接:http://poj.org/problem?id=1160题意:一个公路上有n个村庄,要在一些村装建m个邮寄站,邮寄站必须建在村庄上,通过合理的选择m个建造地点,使得每个村到自己最近的邮寄站的距离和最小。解法:这个要想到,对于i-j区间建一个邮寄站,最优方案是建在中间的村庄。那么可以预处理所有的cost[i][j]表示i-j建一个站的最小距离和。dp[i][j]表示前i

2014-12-01 15:07:18 707

原创 hdu5117(数学推导+dp)

题意:有n(n解法:假设一种情况是开灯数是X, X=(x1+x2+x3...xn),xi是第i个灯的开闭情况。则X^3=(x1+x2+x3...xn)*(x1+x2+x3...xn)*(x1+x2+x3...xn)。即求三个灯的三三组合Xi*Xj*Xk,只有Xi,Xj,Xk都为1时候,他们的乘积才是1. dp[i][j][k][state]表示三个灯ijk状态为stat

2014-12-01 11:34:09 1095 1

原创 uva437(经典DAG题目)

题意:有n(n解法:其中每种立方体有三种摆放方式,可以将每种转化成三种立方体,因为一个立方体不可能在一个相同的自己上面,所有每种一个就够了。90个点,并且是有向无环的图,求最长路径,可以拓扑排序,也可以dfs。代码:/******************************************************* @author:xiefubao*****

2014-11-28 16:04:33 802

原创 uva1608(Non-boring sequences)

题意:如果一个序列的任意连续子序列中至少有一个只出现一次的元素,则称这个序列是不无聊的。判断一个长度为n(n<=200000)的序列是不是无聊的。解法:搞个map记录每个数前一个数的位置,判断以每个数结尾的所有区间是否合法,其中用到线段树访问区间最小值。代码:/*******************************************************

2014-11-28 00:32:24 1264

原创 poj1655(树的重心)

题意: 求树的重心;重心定义:以此节点为根的最大子树节点个数最小。解法:dfs代码:/******************************************************* @author:xiefubao*******************************************************/#pragma commen

2014-11-27 10:30:13 644

原创 poj3557(概率dp)

题意:给定n,p;表示n个点中任意两点连边的概率为p,求生成的图是个连通块的概率。n解法:反向思考,ans[i]为i个节点为连通块的概率,求ans[n]时候,求不为一个连通块的概率,然后用1减。求非连通时,枚举与1号节点为一个连通块的点的个数即可。公式:ans[i]=1.0-  sigma C[i-1][j-1]*ans[j]*pow(1.0-p,j*(i-j))  --- j f

2014-11-26 22:32:18 1013

原创 zoj1283(LIS)

题意:宝藏在一些点中,只能从(0,0)出发,每次只能向右(x+1,y)或是向上走(x,y+1)。问要走几趟才能取完宝藏。解法:按x,y分别为第一二关键字排序,那么一趟下来,y坐标是个非递减序列。然后转化成问y方向能由最少为多少的非递减序列个数组成。这个等效于求严格递减序列的长度。即nlogn求最长严格递减序列长度即可。代码:/************************

2014-11-26 17:25:30 558

原创 URAL 1486(二维字符串hash)

题意:一个最大500*500的字符矩阵,求最大的两个相同的字符正方形。正方形可以有重叠部分但不能重合。解法:首先是二分正方形的长度,然后判断某个长度存在时候计算字符矩阵的二维hash值,二维hash的方法是:这样子拓展的hash算法可以O(1) 获取任意一个子矩阵的hash值。代码:/*********************************

2014-11-17 17:49:30 1689

原创 hdu1695(莫比乌斯)或欧拉函数+容斥

题意:求1-b和1-d之内各选一个数组成数对,问最大公约数为k的数对有多少个,数对是有序的。(b,d,k解法1: 这个可以简化成1-b/k 和1-d/k 的互质有序数对的个数。假设b=b/k,d=d/k,b1-tool中含有rem位置之后的i的质因子的数的个数。在for(int j=rem;jfactor[i][0];j++) ans+=tool/factor[i]

2014-11-16 21:48:33 703

原创 hdu5106(组合数学)

题意:给一个

2014-11-16 16:59:30 732

原创 poj1201(二分+线段树)或(差分约束系统)

题意:数轴上每个位置为0或是1,给n(1 个区间[ai, bi],每个区间内至少有 ci 个1.0 1 。问数轴上至少有多少个1可以满足要求。解法1:现将区间按右端点排序,然后每个区间内的点尽量往右边放,这样子可以照顾到以后的。在找每个区间的放法时,线段树查询区间1的个数,二分查找要放的后缀位置,然后将整个区间后缀全部涂上1.总复杂度是nlognlogn。网上没找到有人这么做的,但

2014-11-16 15:46:28 1044 2

原创 hdu4747 mex 线段树

题意:给一个序列不超过200000个元素,定义mex(i,j)是区间[i,j]之间所没有的最小非负整数。求sum(mex[i,j])对于所有1解法:线段树。先求出mex(1,1),mex(1,2),mex(1,3)...mex(1,n) 而且这必然是递增的。   然后 sum[i=1,1sum[i=2,2sum(mex[1代码:/************************

2014-11-14 15:36:08 981

原创 486E - LIS of Sequence(LIS)

题意:给一个长度为n的序列,问每个数关于序列的LIS(longest increasing sequence)是什么角色。这里分了三种:          1、此数没有出现在任意一条LIS中          2、此数出现在至少一条但是不是全部的LIS中          3、此数出现在所有的LIS中解法:nlgn的LIS算法可以求出以每个i位置结束的LIS长度up[i]。出现在L

2014-11-12 19:37:05 695

原创 hdu4416 Good Article Good sentence (后缀数组)

题意:问a串中有多少种字符串集合B中没有的连续子串。a的长度10^5,B中的总长度为不超过10^5.解法:后缀数组题目;后缀数组可以很容易算出来一个串中有多少种子串。把a和B集合连起来,求一次不同子串数量,然后减掉B相互连起来的数量。在求时候,要减掉含有链接符的子串,方法是扫一遍,枚举最后出现的连接符。代码:/********************************

2014-11-12 19:17:39 850

原创 zoj3734

题意:一棵有根树,每个节点都有一个value值和属性(LICK或是 CANDLE)。你可以通过反转一些点的属性,反转一个点时候,它的整个子树都会被反转属性。有些点反转消耗代价为X,有些为Y。你的目标的是使得LICK的value和最大。解法:13年长沙区域赛一道题,感情当时都没有做到这道题。状态ans[i][0/1]分别表示此点的子树LICK最多能比CANDLE多多少和少多少的值。状态转移见代码

2014-11-05 14:09:51 827

原创 uva 1378 - A Funny Stone Game sg博弈

题意:David 玩一个石子游戏。游戏中,有n堆石子,被编号为0..n-1。两名玩家轮流取石子。 每一轮游戏,每名玩家选取3堆石子i,j,k(i解法:看上去是将石子都往右移,直到所有都到了n-1堆不能移为止。首先是考虑每堆石子其实是独立的一个子游戏,堆与堆之间不相互影响。然后就是个数是偶数的对不会影响必胜必败态,必败态无法通过移动偶数堆得石子来扭转局面,因为必胜者只需对称操作即可。所以每堆石子

2014-11-02 17:55:17 947

原创 hdu3685(几何重心与凸包结合)

题意:给一个多边形(有可能是凹多边形)。问有多少种能够使得它稳定放置的方式。当然稳定的原则就是重心做垂线在支撑点之内。解法:因为有可能是凹多边形,所以先求出多边形的凸包,这是在放置时候会接触地面的所有点。然后将重心与每天凸边判断是否稳定;代码:/******************************************************* @author:

2014-11-02 17:42:46 1091

原创 hdu3689(kmp+dp)

题意:问随机生成一个长度为m(m解法:dp+kmp优化。ans[i][j]表示i长度,走到了s的j位置的概率,当然这是在i之前没有出现s的前提下(在状态转移时候已经保证了这一点);然后最后的概率就是1-m长度的串分别最后出现s的概率之和。代码:/******************************************************* @author:xief

2014-11-02 17:37:28 1587

原创 hdu5044(二分)

题意:一个树上建两个加油站,使得所有点到达其最近加油站的最大距离最小。解法:二分答案。关键时二分时候,要最合理话布局两个点的位置,做法是处理出来树的直径,然后在直径两端分别向中间移动二分的x步的两个点布下加油站。贪心可以证明正确性;代码:/******************************************************* @author:xiefuba

2014-11-02 17:30:25 764

原创 javascript实现贪吃蛇

body{ background:#444;}.rect{ border:1px solid #94F; width:680px; height:680px;}.gridred{width:38px;height:38px;background:red;border:1px #555 solid;float:left}.gridgreen{width:38p

2014-08-05 21:20:50 998

原创 hdu4848

剪枝暴力搜索。代码:/******************************************************* @author:xiefubao*******************************************************/#pragma comment(linker, "/STACK:102400000,102400000"

2014-07-21 20:29:01 1003

原创 FZU 2144(几何+贪心区间覆盖)

题意:三维空间给出n个蚊子的初始位置(ax,ay,az)和移动趋势(dx,dy,dz),那么每个蚊子坐标随时间变化的函数就是(ax+dx*t, ay+dy*t, ax+dz*t)。每次射杀一枪,可以把距离原点距离len之内的蚊子全部杀死。问最多能射杀几只蚊子,这时至少要射杀几次?解法:先求出每只蚊子在射程之内的时间区间,即(ax+dx*t, ay+dy*t, ax+dz*t)^

2014-07-21 10:53:38 746

原创 CF 96D Volleyball(最短路套最短路)

题目链接:http://codeforces.com/contest/96/problem/D题意:不超过1000个点和1000条边的无向图,n个点每个点有一辆出租车,给出每辆出租车能开的最远距离和搭乘这辆车的费用,求起点到终点的最少费用是多少。解法:SPFA里套一个SPFA。第一个是利用乘坐某点的出租车A是否可以更新其他点的最少费用,但是从此点A出发还要求出此点到所有点的

2014-06-29 12:21:56 801

原创 ural 1143. Electric Path(凸包上最短哈密顿路径)

题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1143题意:逆时针给一个凸包的n(n解法:求最短哈密顿本身是一个NP问题,但是因为是凸包上,可以利用这个做;有一个性质:凸包上的最短哈密顿路径不会出现交叉。所以可以看出来从一点出发,他要么和顺时针相邻点连接,要么和逆时针相邻点相连接;通过这个性质可以通过dp做:ans[i][j

2014-06-28 21:02:00 1257

空空如也

空空如也

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

TA关注的人

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