自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黄廉政的专栏

只要功夫深 铁杵磨成针

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

原创 差分约束系统

差分约束的模型简单概括为:存在n个约束条件(这n个条件有些题目给出,有些为了使得运用最短路算法需要自己去添加),求满足这n个条件的一个集合,让这个集合的个数最小或者最大。题目:POJ1201 题目意思是输入两个数a,b和这个两个数之间(包括a和b)至少需要存在c个数。例如3 7 3题目要求3到7之间要至少有3个数。题目要求满足所有输入条件的一个集合,使得这个集合里面的数字最少。那么我们会想到,我们可以设一个数组保存当前这个数字之前至少需要多少个数(可以理解成距离)例如3 7 3,3到7需要3个数,那么8之前

2010-07-26 21:59:00 740

原创 并查集

int find(int t) { int father_t; if(t==father[t]) //直到是根才返回 return t; father[t]=find(father[t]);//将当前的点的根赋值成最后的根,递归完成后5就成了2,3,4的直接的根了 return father[t]; } 并查集是一种提高空间效率和时间效率的手段。就是把有关系的个体合并成同一个集合。然后可以随便查找某个个体或者元素属于哪个集合。关键是如何合并,并查集为一种树状结构。刚开始,所有点的根就是自己,如有10个点。初

2010-07-26 20:16:00 613

原创 数论/中国剩余定理

<br />中国剩余定理:<br />设总数为n,模a得x,模b得y,模c得z,若已知x,y,z,让求出最小的n。<br />则n=(x*a1+y*b1+z*c1)%d;<br />其中a1=y*z中的倍数中模a等于1的最小的数;<br />b1=x*z中的倍数中模b等于1的最小的数;<br />c1=x*y中的倍数中模c等于1的最小的数;<br />d=a,b,c的最小公倍数。<br />中国剩余定理原版之韩信点兵版:<br /><br />传说韩信点兵时发明的算法。设士兵总数为n,模3得x,模5得y,模

2010-07-22 20:54:00 854

原创 数论/扩展欧几里德算法

扩展欧几里德算法求的是二元一次方程ax+by=c,在a,b,c已知的情况下x的最小整数值,扩展欧几里德算法:int exgcd(int a,int b,int &X,int &Y) { if(b==0) { X=1; Y=0; return a; } int d=exgcd(b,a%b,X,Y); int t=X; X=Y; Y=t-(a/b)*Y; return d;

2010-07-22 20:40:00 969

原创 强连通分量之tarjan算法

强连通分量问题通常可归纳为要求出强连通分量,然后通过缩点(将得出的每个连通分量视为一个点,然后继续构图,例如连通分量A有一个点有一条边指向连通分量B的一个点,那么在A上搭一条边到B,其他连通分量也以此类推)。求图的强连通分量一个算法为tarjan,在http://www.byvoid.com/blog/scc-tarjan/这博客中对tarjan的算法描述得非常的详细。我这里转载方便自己以后看[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connect

2010-07-22 16:18:00 8582

原创 二分匹配_最佳匹配KM算法

<br />二分图最佳匹配有匹配后总权值最大和最小两种,求最佳匹配的一个有效算法是KM算法。KM算法很复杂很费解。现在只能总结步骤。<br />KM算法步骤(以下有层次关系,㈠ > 1 > (1) > ① > Ⅰ)<br />(一)  建图:所有点分为两部分,一部分属于L端,一部分属于R端,两端的点各有n个,现在要为L端的所有点在R端的点中找它们的匹配,使最后总权值最大或最小,设有一条边联通L的i点与R的j点,权值为w[i][j],设二维数组gragh_m保存图,graph_m[i][j]= w[i][j]

2010-07-22 15:56:00 1389

原创 网络流/最大流算法与题目总结

最大流模型为有N个湖(点),他们有小溪相连(边),每个小溪都有它们单位时间的最大流量,最大流求的是一个湖(源点)到另一个湖(汇点)单位时间内能流入的最大流量。求最大流的一个算法为 ford_fulkerson算法,算法思想:1.从源点开始寻找一条路径到汇点,记录这条路径流量最小的边的流量为m,然后最大流量+=m,然后每条边的流量都减去m,然后反向更新流量(每条边反方向的流量加上m);2.重复步骤1直到找不到路径到汇点为止,最终的最大流量即为所求的最大流。ford_fulkerson C++模板:void f

2010-07-22 00:04:00 7411 3

原创 2010.7.20第三章标准库类型

<br />今天看完了这一章,主要讲了string类,vector容器,迭代器,和bitset类的特点,操作和一些值得注意的地方,string和vector相对于C语言来说更倾向整体的操作,用惯了char类型和数组和指针对于类的操作一下显得有点不适应。下面总结这几个类得一些要注意的地方。<br />一.string类型;<br />  1.string的size操作返回的是string::size_type类型,不要把size返回值赋给int变量,因为string::size_type是unsigned型的

2010-07-20 22:34:00 655

翻译 "getline" bug fix for Microsoft Visual C++ 6.0 关于VC6的getline输入需要两个回车才结束的BUG修改方法

今天看做C++ primer的习题遇到getline输入string的变量时候需要两个回车才能结束输入,网上找了好久,原来是VC6的BUG,找到了解决的办法如下:简单总结就是随便建立个C++的CPP文件 写个#include,右击string在弹出框中选择打开文档,然后点编辑工具栏-->点查找 ,在查找栏输入else if (_Tr::eq((_E)_C, _D)),点查找下一个,将下图的左边代码部分改成右边部分,保存后退出即可:originalmodifiedelse if (_Tr::eq((_E)_C

2010-07-20 16:24:00 2234

转载 POJ图论分类

最短路问题 此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等) http://acm.pku.edu.cn/JudgeOnline/problem?id=2449 题意:经典问题:K短路 解法:dijkstra+A*(rec),方法很多 相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144 该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(

2010-07-16 11:14:00 887

空空如也

空空如也

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

TA关注的人

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