NOIP C模板分析和总结.docx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

头文件、宏定义、类定义:

#includeiostream#includecstdio#includecmath#includecstring#includecstdlib#includecfloat#includealgorithm#includequeue#includeset#includestack#includemap#includevector#includelist

usingnamespacestd;

#defineINF~0U1#definePiacos(-1)

Dinic:

intBFS(){

memset(dis,-1,sizeof(dis));dis[1]=0,q.push(1);

for(intj;q.size();){

j=q.front(),q.pop();

for(inti=1;i=N;i++)if(dis[i]0c[j][i]0)

dis[i]=dis[j]+1,q.push(i);

}

returndis[N]0;

}

intfind(intx,intlow){if(x==N)returnlow;

for(inti=1,a;i=N;i++)

if(c[x][i]0dis[i]==dis[x]+1(a=find(i,min(low,c[x][i])))){c[x][i]-=a,c[i][x]+=a;

returna;

}

return0;

}

intmain(){

cinMN;

for(inti=1,u,v;i=M;i++)

cinuv,cinc[u][v];

while(BFS())

for(inti=find(1,INF);i;i=find(1,INF))ANS+=i;

coutANSendl;

return0;

}

EdmondaKarp:

intEK(ints,inte){intans=0;

for(queueintq;1;ans+=res[e]){memset(res,0,sizeof(res));

res[s]=INF,pre[s]=-1,q.push(s);

for(intx=q.front();!q.empty();x=q.front()){q.pop();

for(inti=1;i=e;i++)

if(!res[i]f[x][i]c[x][i]){q.push(i);

pre[i]=x,res[i]=min(c[x][i]-f[x][i],res[x]);

}

}

if(!res[e])break;

for(inti=e;pre[i]!=-1;i=pre[i])f[pre[i]][i]+=res[e],f[i][pre[i]]-=res[e];

}

returnans;

}

intmain(){

memset(f,0,sizeof(f));

cinnm;//n:Thenumberofvertices.m:Thenumberofedgesfor(inti=1,x,y;i=n;i++)cinxyc[x][y];

coutEK(1,m)endl;

return0;

}

ISAP:

inlineintdfs(intpos,intcost){if(pos==sink)returncost;

intminh=n-1,lv=cost,d;

for(intj=p[pos],v=e[j].v,val=e[j].val;j!=-1;j=e[j].next,v=e[j].v,val=e[j].val){if(val0){

if(h[v]+1==h[pos]){

d=dfs(v,lve[j].val?lv:e[j].val),e[j].val-=d,e[j^1].val+=d,lv-=d;

if(h[source]=n)returncost-lv;if(!lv)break;

}

if(h[v]minh)minh=h[v];

}

}

if(lv==cost){

--gap[h[pos]];if(!gap[h[pos]])h[source]=n;

h[pos]=minh+1,++gap[h[pos]];

}

returncost-lv;

}

intisap(intst,inted){intret=0;

source=st,sink=ed,gap[st]=n;while(h[st]n)ret+=dfs(st,INT_MAX);

returnret;

}

intmain(){

memset(p,-1,sizeof(p));m

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档