自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许增强

生活就像心电图,想要一帆风顺除非你死了~

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

原创 草稿

Tyvj 1188 //矩阵连乘#include#include#include#includeusing namespace std;const int MAX=25;const int Inf=1000010;#define CLR(arr,val) memset(arr,val,sizeof(arr)) int n,a[MAX],DP[MAX][MAX],

2012-08-23 16:51:16 754

原创 线段树三:求任意区间的最值

从做这几个题目我发现了,能调用库函数的尽量调用库函数,不然的话可能会超时。不信可以试,在题1的头文件下定义宏:#define min(a,b) (a)<(b)?(a):(b)在题2中定义宏:#define max(a,b) (a)>(b)?(a):(b)题1:Tyvj 1038(忠诚),给定区间求最小值。只需更改Query即可,由于没有修改操作,可以删除Update操作。#

2012-08-29 10:02:10 1520

原创 线段树二:修改区间的值求任意点的值

阿萨德

2012-08-29 10:01:27 1173

原创 线段树一:修改点的值求任意区间的值

强烈推荐:这篇文章------------------------(完全版)线段树。线段树的作用:解决区间计算问题。例如:记录一个区间的最值(最大或最小值)和总量,并在区间的插入、删除、修改中维护这些最值和总量。线段树是一颗二叉树。记为T(a,b),a,b表示顶点T为区间[a,b]。区间长度b-a记为L。递归定义T[a,b]:若区间长度L>=1,区间[a,(a+b)/2]为T的左孩

2012-08-28 08:53:18 2750

原创 SPFA算法

具体见:SPFA,这里面讲的很详细。它的大致算法流程:①、初始化时,把源点pos加入到队列中,并置Dist[pos]=0,其它各点到源点的距离设为Dist[V]为∞;②、每次取出队列中的一个元素,并以该点为中间点,对于该点有边相连的点V进行松弛操作,如果松弛操作成功,改进Dist[v]的值,并把v加入到队列中;③、反复进行②操作,直到队列为空,Dist[v]表示源点到其它各点的最短距离

2012-08-26 10:08:43 1974

原创 强连通分量

有向图的强连通分量:在有向图G中,如果两个顶点vi,vj间(vi!=vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量。如图所示:{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达,{5},{6}也分别为两个强连通分量。Tarj

2012-08-21 16:09:55 1352

原创 多进程DP

题1:NYOJ 61(传纸条),先看一个人的情况,DP[i][j]表示纸条到达(i,j)的时候好心程度之和的最大值,那么由于只能向下或者向右走,那么到达(i,j)位置可能是由(i-1,j)下移一步或者由(i,j-1)位置,右移一步得到,所以动态转移方程为:DP[i][j]=max(DP[i-1][j],DP[i][j-1])+G[i][j]。(G[i][j]表示(i,j)这个位置的人的好心程度)。

2012-08-18 11:12:50 1222 1

原创 01背包

01背包:有N件物品和一个容器为V的背包。第i件的物品重量为w[i],价值为v[i]。那么放入哪些物品后能使得背包的总价值最大。且每种物品只有一个,要么放入,要么不放入。设DP[i][j]表示前i件物品在背包容器为j的最大装载量。①、当物品总量为0时,DP[0][j]=0,当容量为0时,DP[i][0]=0;②、若当前的体积j③、否则若j>=w[i]时,有:DP[i][j]=max

2012-08-15 10:45:52 652

原创 区间动态规划

1、矩阵连乘,tyvj 1198(最优矩阵连乘),关键是写出动态转移方程。用DP[i][j]表示矩阵Ai乘到Aj的最优解,P[]用来存储矩阵的行和列,M[i-1]表示矩阵i的行,M[i]表示矩阵i的列。当i==j时,DP[i][i]=0;当i(A3A4A5A6A7A8)A9。我们知道若A矩阵为r1*c的矩阵,A2为c*r2的矩阵,得到的将是一个r1*r2的矩阵,且连乘次数为r1*c*r2。

2012-08-14 09:19:19 6444

原创 NYOJ 动态规划

题1:NYOJ 10(滑雪),前面的博文-动态规划中有。题2:NYOJ 15(括号匹配),放在区间动态规划中。题3:NYOJ 16(矩阵嵌套),大概意思给你n个矩阵,这些矩阵相互嵌套,问能够嵌套的最大个数,直接按长度从大到小排序,长度相等则按宽度从大到小排序,由于能够嵌套满足:长1DP[i]=max(DP[i],DP[j+1])(0 #include#include#inc

2012-08-14 08:47:09 2295

原创 最小费用最大流

最大流:(1)、Ford_Fulkerson算法:在任何运输网络中,最大流的流量等于最小割切的容量。割集:在一个有权图中,源点为s,汇点为t,从s到t有很多路径可以走,每条路径都包含若干条边。这些边可能只属于一条路径,也可能同时出现在两条路径中。如果拿掉这张图中的一些边,就无法从s到达t,这些边的组合就叫做割集。最小割:割集有很多,每一个割集中元素的权值之和称为割集容量。所有割集容

2012-08-12 15:48:05 758

原创 二分图的最大匹配

二分图:图G中顶点集V可以分成互不相交的子集(X,Y),并且图中的每一条边所关联的点分别属于两个不同的顶点集,则图G叫二分图,如图所示:二分图的匹配:给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配,当匹配数达到最大时为二分图的最大匹配。当然最大匹配的方案可能不能,但是最终结果都是一样。上图中最大匹配可以由(1,1),(2,2),(3

2012-08-11 09:49:21 1089

原创 Floyd算法

例题2:POJ 2570,某条道路由一些公司修建,修建道路的公司可以提供这条路上的连通,如第一个测试数据中,从1到2有a,b,c三个公司可以提供路径,现给你任意的两个地点,问有哪些公司可以提供路径。这个题的难点就是给你的字符串如何存储,我们用map[u][v]表示u到v可以由哪些公司提供路径。初始化为0,那么它的二进制的每一位都为0,用0~26的位置表示a~z是否可以提供路径,可以则设为1。如

2012-08-09 16:12:52 646

原创 并查集题目总结

有关并查集的知识可以点这里,这里知识说下题目:POJ 1611(意思是有很多人编号为0~n-1,一开始只有编号为0感染了,然后输入多组数据n,m,n是总人数,m为群体数,接着有m行,每一行最前面的一个数表示这个群体的人数,然后输入这些人的编号,在这些群体中只要有一个被感染的话这群人都会被感染,问最后有多少人被感染。)很裸的并查集,直接输出与0在同一个群体的人的个数即可,代码略。

2012-08-09 10:38:21 641

原创 牛顿迭代法

牛顿迭代法:设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x

2012-08-03 15:50:24 802

原创 计算几何求公式

例题1:POJ 1380(矩阵的包含),给你两个矩阵的长和宽,问前面这个矩阵能否包含后面这个矩阵。(1)、当前面的矩阵的宽(2)、当前面矩阵的面积(3)、当前面矩阵的长,宽>后矩阵的长,宽,能够包含。(4)、特别注意前矩阵宽>后矩阵的宽,但是长 判断只需要后面这个矩阵在水平方向上的投影之和C*cos∠2+D*sin∠2,自己认真看看,具体见代码。#include

2012-08-02 11:13:36 841

空空如也

空空如也

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

TA关注的人

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