自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

生活总是要微笑着面对~

我的菜鸟梦想

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

原创 只是一个新的开始

最近好多人说到博客,我也好久没有怎么认真写过了。之前的博客也都是关于ACM刷题的,贴了好多代码,没怎么用心维护,感觉可能除了我自己,很少有人真的能看懂。实习快五个月了,感觉什么也没有做,其实就是没有什么东西留下来,思考了一下,还是应该写写博客什么的,因为本人比较喜欢新的开始,所以打算换个地方写博客了,欢迎大家提意见啊!新博客地址:http://xzffwy.github.io/

2014-12-14 16:25:13 848 1

原创 关于我的ACM-ICPC

确实好久没有写博客了,之前的博客也全部都是关于ACM大学生竞赛的算法题,因为现在重心不在这里了,所以就长时间没有什么更新了。ACM-ICPC终究是离我越来越远了,总觉得应该写点什么结束语来纪念以前,以后总是可以用来回忆那些美好时光。大学加入ACM实验室是我大学时光做的最正确的选择,虽然说我们整体的水平不高,但是可以不断的提升自己就是最大的成功。一直很感激的是钢牛,他是我刷题的偶像,也是因为

2014-12-14 15:43:50 940

原创 二维线段树模板

#define SQR(x) ((x)*(x))#define rep(i, n) for (int i=0; i<(n); ++i)#define repf(i, a, b) for (int i=(a); i<=(b); ++i)#define repd(i, a, b) for (int i=(a); i>=(b); --i)#define clr(ar,val) memset(ar

2014-10-29 20:34:46 1840

原创 codeforces D - Biathlon Track

好久没写博客了,或者说好久没有shu

2014-05-09 22:45:49 896

原创 Linux-算法学习(分配pid)

该分配进程pid的函数被定义在:kernel/pid.c数据定义:typedef struct pidmap { atomic_t nr_free;//当前空闲的pid的个数 void *page;//用数组代表位图,每一项为一个字长,用位来表示是否该pid被分配. } pidmap_t;BITS_PE_PAGE:一个页面中可以表示的数的个数,32位的为2^15(页面

2014-03-27 20:37:10 2769

转载 c++ 符号重载

C++ 运算符号重载前言   多态性是面向对象程序设计的重要特征之一。它与前面讲过的封装性和继承性构成了面向对象程序设计的三大特征。这三大特征是相互关联的。封装性是基础,继承性是关键,多态性是补充,而多态又必须存在于继承的环境之中。  所谓多态性是指发出同样的消息被不同类型的对象接收时导致完全不同的行为。这里所说的消息主要是指对类的成员函数的调用,而不同的行为是指不同的

2014-01-25 09:13:04 10746

原创 DES 算法 信息论与编码

·好久没有写博客了,换句话说就是很久没有刷题了,从长沙回来,就被大大小小的考试文档弄的生活乱七八糟的,今年的期末考试仿佛来的更早了些,现在已经断断续续考了几门了,感觉都把刷题抛到脑后了,今天老师布置了DES算法,是考试的一部分,写了一段很挫的代码,觉得也算是进行了代码的练习了吧!看看也是学过信息论的人啊!#include#include#include#include#incl

2013-12-16 20:22:48 935

原创 poj3422 最小费用最大流

记得以前做过这样类似的题,因为那时候求的是来回的最大值,直接使用的dp,而且对费用流并不是很清楚,然后又看到了这道题。。。对点进行拆分建图,一个点拆为两个点a和b,在a和b之间建一条花费为输入值容量为1的边,然后再建一条花费为0容量为k-1的边,对b点对于其右边和下边都建立一条容量为k花费为0的边,加入超级源点和汇点,花费为0容量为k,由此套模板就可以了!下面是代码:///////

2013-10-28 15:32:52 1625

原创 最小费用最大流 模板

class match{public://最大费用则加边的费用的值正好负号相反的 //s和t要赋值的,并且花费一个为正一个为负刚好抵消的 int s,t;//源点和结束点的,开始为1 的 struct node{ int y,cost,cap,pre; }; node a[N*1000]; int dis[N]; bool vis[N]; int point[N]; int

2013-10-25 20:59:38 670

原创 hdu 4729 树链剖分+二分

此题一看就知道是树链剖分,模板题!可怜我模板少抄个字母,在这两百多行的代码里找bug找了三个多小时啊!!!!解题思路:对于要求的x,y点,先可以求得不加任何操作的最大流量P,c1为建造一个路的话费,c2为增加一个容量的花费,如果c1P+k/c1。否则,如果先建一条路,那么最大的流量是M=P+1+(k-c1)/c2,如果不新建路只加边呢?那就可以二分求得最大的结果,为了节省时间,可以对整体进

2013-10-14 21:07:55 1674

原创 hdu 2665 划分树裸题

昨天还觉得划分树很难,看了一眼别人的代码觉得好长然后觉得很没法下手!今天早上起床还是很耐心的研读了大牛的代码,哈哈,原来也不过如此吗!线段树和归并排序的结合,建议大家以后遇到不会的题一定要有耐心,不然就真的学不会了!#include#include#include#include#include#include#include#include#include#includ

2013-10-13 23:03:09 610

原创 hdu 4417 划分树 求一个区间内小于n的数

昨天才开始看划分树,本来国庆都应该看的,但是自制力太差了,好友推荐了几部电影,没有抵得住诱惑!划分树:基于线段树的数据结构,利用归并排序用O(lgn)的方法对数据进行排序更新。题目大意:给定一个数组,求在一个区间内小于等于n的/////////////////////////////////////////////////////////////////////////// File

2013-10-13 22:22:39 736

原创 后缀自动机 求子串所有数的和

题目大意:给定n个字符串,求这些字符串中不同的字串的数字和。思路:首先就是后缀自动机模板,然后求这些不同字符串的和,注意每个节点都是有一个step值的,记录离开头节点的位置,所以对于数组后缀自动机进行遍历的时候要按照这个顺序进行遍历,刚开始写的时候没有根据这个顺序遍历,然后wa了好多次,然后看了别人的代码,还是没有彻底了解。对于总和的求法则可以根据节点更新,可以有点技巧。#incl

2013-10-12 16:18:20 902

原创 hdu 4455 dp

题目大意:给定一个数组,求长度为x的字串中不同的数字的总数。发现看别人的思路做的题写完之后等若干天之后还是想不懂怎么写。。。前几天一直在看后缀数组,ac自动机什么问题的,竟然将这题往后缀自动机那里想了。。。。然后发现实在是想不出来怎么写,然后发现了自己以前写的代码,然后就对自己真的无语了,周四就要去成都参加区域赛,这样的状态是真的让人很无语啊。。。解题思路:对于长度为i的字串得出的结果

2013-10-12 14:26:18 676

原创 hdu 3518 后缀数组

晚饭前写的代码,一直wa,一直想不通,后来写程序对拍了,一百组数据中错了一组,然后还是想不通为什么的,然后的然后看了别人的代码,然后瞬间知道自己为什么wa!还是对后缀数组了解的不够,自己默认的是sa中排在前面的然后在字符串数组中下标也是在前面的,然后就没有挨个比较相同长度中的取最大值和最小值,所以wa的可怜啊,不过在比赛前又找到自己的一个缺陷好高兴啊,说明以后做这类题ac率又提高了,哈哈!

2013-10-06 18:35:10 537

原创 codeforces 204 Jeff and Rounding

最近似乎一点状态也没有,而且最重要的是没了干劲,不知道是不是从暑假到现在一直在刷题然后内心感到劳累还是怎么的,一看到题就想睡觉,国庆七天本来可以好好解决一些不会的题,为成都赛区做准备的,可是我却几乎都用来睡觉了,上午一睡十点多,下午有比赛了做比赛,没比赛就又睡一下午,似乎睡觉成了我的中心点了。昨天冰姐将机房钥匙拿走了,上午下午他都去机房刷题,他都已经大四了,还有这么大的干劲,而我大三怎么能没有动力

2013-10-05 10:44:33 1001

原创 hdu 4416 后缀自动机 求一个字符串中出现的不同子串的个数(去除一些其他字符串的子串)

题目大意:给定一个字符串a,又给定一系列b字符串,求字符串a的子串不在b中出现的个数。第一次写后缀自动机的东西,刚开始的思路就是给a家里一个后缀自动机,对b的系列串也建立后缀自动机,然后对比,对于a自动机中某节点出现k儿子,而b相对应的节点没有k儿子,则说明以k后出现的子串b中都是没有的,咋看思路是挺正确的,但是时间却让人哭了,虽然当时知道肯定TLE的,但是确实想体验一把,不然就是纯粹看别人的

2013-10-04 17:20:15 2396

原创 后缀自动机 模板

class match{public://用m来定义字符串中字符的个数的,0~m-1 int son[N][M];//一般的是26个英文字母的,N为节点的个数 int fa[N],step[N];//fa指的是前面的那个的 int len,last; //len指的是总的节点的个数,last指的是横线上给的最多n个的 int node(int x) { step[+

2013-10-04 11:06:07 2059

原创 hdu 4745 求最长对称子串

博客好久没更新了,不是不想写,主要是这几天实在没怎么做出来题,除了比赛做了几个自己会的,然后就是不会的也一直没看,一周都处在等着国庆放假的心情,然后就什么就没有了!好不容易看了一道上次网选的题啊!!!!真是越来越退步了!题意转化为:在n个点中求最长的回文子序列,不是子串哦!/////////////////////////////////////////////////////////

2013-09-30 17:51:15 651

原创 zoj 3724 线段树

比赛的时候感觉这道题可以写,在那里分析了很久,就对于u题目意思很容易懂,这里就不啰嗦了。解题思路:刚一看感觉是最短路的题,应该是图,但是再一想,有n-1条有向边你可以随意用但是那些小道只可以用一次,所以就是对于特定的问题,根据那些小道对于每个点的距离进行更新。对于问题进行离散处理,和边放在一块进行sort。对于u>v和u1、对于uv && u'2、对于u>v,首先进行和上面的一

2013-09-20 14:15:08 893

原创 zoj 3725 Painting Storages dp

最近做题没状态,其实我觉得最大的问题就是没自信,不敢写,还是没有勇气,我发现这都是自己的性格,生活中的我也是这个样子,应该在不断成长!题目大意:连续的n个点,每个点可以染红色或者蓝色,求连续染m个红色的点的所有方案数。思路:1、对于连续的第i个点,如果前面已经出现了m个染红色的点,那么对于i+1的话就为ans【i]*2;             2、对于前面没有出现的点,那么对于第i+

2013-09-19 15:40:10 979

原创 树链剖分 模板

class match{// #pragma comment(linker,"/STACK:100000000,100000000")扩栈语句啊!!public://top标记重边的头,w标记与其父节点相连的边在树中的位置,也为代表点的 int n,m,len,topw; int fa[N],size[N],son[N],w[N],top[N],dep[N]; int pre[N],li

2013-09-16 16:28:39 1441

原创 hdu 4274 树形dp

现在的做题状态好差啊,题目没思路,就算有思路了写对的概率也好小啊,总是这里那里出现问题。前天上课,老师在上面讲我在下面敲代码,写了好久,那个比赛就写了最水的一题,连自己的模板都忘记用了!无语了!!!!题意:给定一个职员的关系,也就是一个树,和以某一个节点为根的子树的条件,判断这些条件是否都成立!昨天看这道题的时候似乎题意都没有真正理解,然后就是肯定也没写,还一直以为是差分约束。。。解题

2013-09-12 22:58:12 660

原创 hdoj 4714 将树转换为环

比赛的时候想到的思路为:对于一个节点的度数超过n,如果其超过2,那么肯定是要减去n-2条边的,至于怎样去删边,那就删去其相连的度数较大的节点边,以贪心的思想,自我感觉删去一条边最大可以使两个节点的值更接近于要求就是最大的,结果wa了,后来给钢牛讲了思路,他也觉得挺对的,但是还是错的。。。今天下午和ac的程序出数据在对,最后终于发现算法错在哪里了。因为我觉得只要删边就删节点度数最大的点,但是这里不是

2013-09-09 17:08:03 741

原创 hdoj 4358 树的线性化,树状数组,离散化

题目大意:给定一个树,每个节点都有一个权值,给定一个值k,有q次询问,试求以节点x为根的子树中每个节点的权值数相同恰好出现k次的数目。组队训练的时候,钢牛和冰姐都没有研究这道题,我还看错了一次,反正是比赛的时候没有什么思路的啊!解题思路:将树装换为线性数组,然后记录其子树所在线性数组的左右区间,所以每次询问的时候就是一个给定的l和r值,进行更新而已。对于每次的询问进行r从小到大进行排序

2013-09-08 20:17:56 703

原创 pku 3415 后缀数组,公共子串统计

给定两个字符串,要求相同子串的个数,其中字符串开始的位置不同则为不同的子串。思路:第一肯定是想到的后缀数组,求得的是high数组,那么这只是排列临近的的后缀的最长公共前缀,为了求总的个数,我们可以对high数组进行分段求得,就是从1到n枚举最长公共前缀的长度,然后进行分段,要注意相同的子串必须属于不同的字符串的,具体看代码,表达能力太差啊!#include#include#includ

2013-09-05 23:13:01 782

原创 Codeforces Round #191 (Div. 2).

前天的比赛今天才写总结,自己的生活是越来越乱了,整天都不知道做什么,下午同学来找我玩,好高兴啊!B. Maximal Area Quadrilateral题意:给定一个点集,随意找一个四边形,使得四边形的面积最大,可以不是凸的!解题思路:向量的叉积,不断的枚举对角线,然后求两边的点到对角线组成的三角形的面积最大,两边三角形面积最大的相机即可,要考虑两边都要存在点,一边没点的情况是不允许

2013-09-01 10:27:17 586 1

原创 欧几里得扩展方程

ll x,y,m,n,l;ll a,b,c;ll k1,k2,d;ll gcd (ll x,ll y){ if(x<y) swap(x,y); if(y==0) return x; return gcd(y,x%y);}void fun(ll a,ll b){// cout<<a<<" "<<b<<endl; if(b==0) { k1=1; k2=0;d=a; r

2013-08-31 22:28:40 613

原创 HDU 3523 Image copy detection 最小带权匹配

昨天比赛,2010年多校第9场,貌似我们九个人中就我一个人研究了这题,也研究了一个多小时,而且刚开始对题意的理解用手算是过了样例,然后程序写出来时发现不对,手算的时候算错了,然后又读了题,然后觉得另一种题意应该是对的,在提交WA了几次之后我是终于彻彻底底明白题意了,但是比赛差不多结束了,而且受当时题意读错的影响,真明白的题意的时候思路扩展不开,就想到暴力的搜索了,然后就是预想中的TLE了!!!

2013-08-29 23:10:13 829

原创 关于一些不怎么知道推导但是经常碰到的规律

数列:2 、2、3、4、7、12、23、44、87、172通项公式:奇数 a(n)=a(n-1)*4-5   偶数  a(n)=a(n-1)*4-4

2013-08-29 20:13:19 664

原创 codeforces 197 2

本来昨天做完题还很高兴的,因为发现五道题都有思路的,并且交了之后都是临时数据都过了,才花了一个半小时,于是感觉心情很舒畅的睡觉了,然而早上一开电脑就发现wa了两道题,!!!!就是第三题和第五题,卢学长的情况和我一样,wa的原因都一样。。。今天做topcoder我们两个还是一样的,看来以后我们两个一块做题一个人的bug是不容易被另外一个人发现的。。。。首先说第三题:几乎所有的人都可以想到贪心的,

2013-08-27 23:37:39 521

原创 后缀数组 模板

char s[N];//数组的长度要为两倍的int n;//n全局变量为字符数组的长度的int sa[N],high[N],rank[N],tmp[N],top[N];void makesa(){ n=strlen(s);//代表的是长度的 n++; s[n]='$'; int na,len; na=(n<256?256:n);//字符中的最大的 memset(t

2013-08-26 17:04:43 873

原创 hdu 4598 Difference

为了做着道题,下午又找了几道差分约束的题做了,因为差分约束是很久以前看的,没怎么理解,现在看看,感觉理解的还不错了!题意:判断是否存在图,使得像连的两个定点的值的差的绝对值大于等于T,并且每个定点的值都是小于T的。大致思路:比赛的时候就想到求奇圈了,但是一直wa,还很不理解,以为是代码写错了,后来想到,题中说的是相连的边的要求,那么也就要求了不想连的边的绝对值小于T了,而只求奇圈没有 满足

2013-08-25 19:17:06 932

原创 hdu 3440 差分约束

做题的时候唯一庆幸的是一开始图就建对了,但是从哪个点开始搜却让我很纠结,从最低的?样例过不去,从最高的?样例还是过不去,从0开始?样例更是过不去了,然后就纠结了几乎一下午,开不出来,然后看了一眼别人的代码,从最高和最低中选择坐标最小的开始。。。因为建的图是从左到右的,所以要从最左边的点搜,还有就是数组一开是附的值不能小啊,因为题中给的数就很大的!#include#include#include

2013-08-25 17:20:51 524

原创 差分约束

①:对于差分不等式,a - b ②:对于不等式 a - b >= c ,建一条 b 到 a 的权值为 c 的边,求的是最长路,得到的是最小值 ③:存在负环的话是无解 ④:求不出最短路(dist[ ]没有得到更新)的话是任意解超级源点的建立很重要,是为了保证每个点都可以入队列判断负环,也可以一开始使得所有的点都进入队列的!建图时注意是带等于号的struct node

2013-08-25 15:58:22 538

原创 hdu 4496 并查集

这道题是最容易一下ac的,结果我却写并查集的时候写错了,wa的次数我都不想说了啊!!!!题目中要求去边求连通的个数,可以逆向思维,不断的从后向前加边,然后就是刚开始的分量为n,然后不断的合并数,在同一个树上的时候则连通分量的个数不变,否则减一。。。#include#include#include#include#include#include#include#include

2013-08-24 22:53:57 745

原创 hdu 4497 最大公约数和最小公倍数

今天做2013ACM-ICPC 吉林通化的题,结果是很差,以前每次做完钢牛都会说他自己越来越弱了,而我只是想说,我似乎一直都是这么弱,比赛的时候看到了这题求最大公约数和最小公倍数,分析了一半然后觉得可麻烦,其实还是自己的思路不成熟,然后就在那里动想一下西想一下,每次都是思路走了一半之后自己就停车了,结果一下午就做了一题,似乎最简单的第一题也是wa了无数次没有AC的。思路:对于n和m,如果m%n

2013-08-24 22:49:41 756

原创 hdu 4699 Editor 双栈维护最长前缀

比赛的时候第一想到的是线段树,然后就照着那个思路写了好久,到最后RE了,而且还很郁闷,我用了双向队列记录了所有增加删除和询问所在的值在线段树中的位置,然后建树维护,很荣幸的一直RE到底,到现在我都没有相处来到底是哪里错了,可能是用双链表访问越界什么的,但是到现在都找不到错误,感觉思路也没错啊!今天上午看了解题报告,突然觉得好简单,还是接触的少了,思路不开阔,想不到好的思路。。。思路: 用两

2013-08-23 11:46:13 619

原创 最大匹配,花树开花算法

最初图是用的数组线性表存的,但是TLE了,后来直接用矩阵存的然后就AC了,表面上看用矩阵存似乎花的时间多,因为访问了一些不存在的边,但是用临接矩阵存有重边的情况就很不好,所以还是用矩阵吧!class match{public: queueq; int n,m,len; int g[N][N]; int pre[N]; int next[N],base[N],

2013-08-23 09:36:53 1930

转载 带花树算法

转载地址:http://blog.sina.com.cn/s/blog_95ec9e7401018bga.html简述一下“带花树”算法吧:它的核心思想还是找增广路。假设已经匹配好了一堆点,我们从一个没有匹配的节点s开始,使用BFS生成搜索树。每当发现一个节点u,如果u还没有被匹配,那么就可以进行一次成功的增广;否则,我们就把节点u和它的配偶v一同接到树上,之后把v丢进队列继续搜索。我们给

2013-08-21 15:15:39 6048 2

空空如也

空空如也

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

TA关注的人

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