自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 mark

最小路径覆盖数=G的点数-最小路径覆盖中的边数。应该使得最小路径覆盖中的边数尽量多,但是又不能让两条边在同一个顶点相交。拆点:将每一个顶点i拆成两个顶点Xi和Yi。然后根据原图中边的信息,从X部往Y部引边。所有边的方向都是由X部到Y部。因此,所转化出的二分图的最大匹配数则是原图G中最小路径覆盖上的边数。因此由最小路径覆盖数=原图G的顶点数-二分图的最大匹配数便可以得解。...

2018-08-22 09:23:54 111

原创 状压小结

使用条件:小数据  <17 tip:如何遍历一个状态的子状态                k:=i;               while k>0 do begin                    k:=(k-1) and i                    end;...

2018-08-17 13:03:18 325

原创 DP小结

分段dp:        特点:有阶段性                   举例:用m个木板覆盖 for  阶段数i        for  前一次完成的终点j              for  这次完成的终点k                    dp[i][k]=min(dp[i][k],dp[i-1][j]+cost{j+1 to k}) 区间dp:           特点...

2018-08-15 08:19:13 169

原创 矿产搭建

在错误十一次后终于对了 高兴的附代码: const maxx=100005; var o,root,u,v,x,y,n,m,i,j,k,l,tot,num,top,flag,co:longint; ans,anss:int64; dfn,low,head,next,vet,st,count,cutd:array[0..100005] of int64; cut:array[0..100...

2018-08-02 23:10:15 170

原创 染色种数

染色种数 http://luo.hustoj.com/problem.php?id=1105 var n,m,i,j,k,l,x,y,z,cc:longint; p:Array[0..1000005] of longint; c:char;   procedure build(t,l,r:longint); var mid:longint; begin if l=r then b...

2018-08-02 13:21:40 220

原创 割点,桥,双连通

计算割点和桥数的模板: (基本上和强连通的tarjan算法一样) var n,m,i,j,k,l,num,top,tot,co,ii,x,y,u,v,count,ans,cutedge,root:longint; head,next,vet,low,dfn,color,d:array[0..400005] of longint; visit,st,cut:array[0..400005] of...

2018-07-30 20:58:12 144

原创 匿年龄分组

 题目简述:  BSNY所在的城市有N个人,每个人的年龄未知。已知M对人之间的年龄大小,用ai, bi表示编号ai的人的年龄不小于编号bi人的年龄。 为了让年龄更加隐匿,BSNY想把这N个人分成若干组,每组内的成员相互不能比较出年龄大小。 现在BSNY想知道,要达到上述要求,至少分多少组? 例如N=4, M=4。 M对关系如下:1不小于2,1不小于3,2不小于4,3不小于4 至少分3组...

2018-07-30 15:55:30 232

原创 关系并查集 食物链

简化版01关系(对立关系)简便写法:设立一个反面,i与i+n相反 附代码: var n,m,i,j,k,a,b,u,v:longint; father,team,cnt:array[0..100005] of longint; function getfather(v:longint):longint; begin if father[v]=v then exit(v); father[v]...

2018-07-30 11:24:11 237

原创 这不是floyd

tarjan缩点,同一个强联通分量中,元素只有一个就不需要连边,否则就连成一个环,ans+=元素个数 处理强联通分量直接连边有点麻烦,先把所有的边都连上,并记录连边的出发点和终点(l[num],r[num]),ans+=num 用p[i][j]来记录强联通分量i到j的走法总数,用floyd计算,p[i][j]+=p[i][k]*p[k][j] (>0),然后再枚举每一条连着的边,看能否删...

2018-07-30 11:20:14 176

原创 间谍网络

算最小编号时的更优做法是以cost<>maxlongint为起点再进行一次tarjan,未被搜到的(dfn=0)即不能被收买的间谍   搜到附代码: var n,m,i,ii,u,v,j,k,l,x,y,a,b,tot,num,top,co,p,ans,anss:longint; head,next,vet,color,st,dfn,low,cost,pay,d,minn:arr...

2018-07-30 09:17:48 303

原创 明星奶牛

tarjan缩点,有且只有一个点出度为0,则ans=点中元素个数,否则ans=0 tarjan一次就可以找出最大强联通分量 最后的for i:=1 to co do if d[i]=0 then begin inc(ans,count[i]);inc(u);end;易写错成 for i:=1 to co do if d[color[i]]=0 then begin inc(ans,count...

2018-07-30 08:15:54 373

原创 强联通tarjan

procedure Tarjan(u:longint); begin num:=num+1; dfn[u]:=num; low[u]:=num; inc(top); st[top]:=u; i:=head[u]; while i<>0 do begin     v:=vet[i];     if dfn[v]>0 then  begin         begin       ...

2018-07-29 20:16:50 185

原创 线段树

var n,i,j,k,l,r,q,x,y,m:longint; c:char; a:array[0..100005] of int64; p,flag:array[0..1000005] of int64; function min(a,b:int64):int64; begin if a<b then exit(A); exit(B); end; procedure build(t,...

2018-07-29 20:15:07 135

原创 RMQ

var log,a:array[0..50005] of longint; n,m,i,j,k,l,r:longint; f,z:array[0..50005,0..100] of longint; function max(a,b:longint):longint; begin if a>b then exit(a);exit(b);end; function min(a,b:long...

2018-07-29 20:13:44 427

原创 堆优化的dijkstra

type re=record     point,x:longint;     end; var n,m,i,j,k,l,x,ii,y,z,tot,top,point,v:longint; head,next,vet,len,dist:array[0..1000005] of longint; p:array[0..1000005] of re; b:array[0..1000005] of bo...

2018-07-29 20:12:36 369

空空如也

空空如也

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

TA关注的人

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