nyoj489哭泣的天使
2012-11-13 18:30
393 查看
用的sap链表存的数据,为什么时间会跑了700多ms,而用邻接矩阵只用了600ms,别人的却用了80ms。
路过赐教。
#include<stdio.h>#include<string.h>#define maxn 200010#define inf 0x7fffffffstruct cc{int adj;int nxet;int w;int re;//反向.}edge[maxn];int pre[maxn],start,top;int high[maxn],head[maxn],dis[maxn];void init(int u,int v,int w){edge[++top].adj=v;edge[top].w=w;edge[top].nxet=head[u];head[u]=top;edge[top].re=top+1;edge[++top].adj=u;edge[top].w=0;edge[top].nxet=head[v];head[v]=top;edge[top].re=top-1;}int MIN(int x,int y){return x>y?y:x;}int sap(int m){memset(high,0,sizeof(high));memset(dis,0,sizeof(dis));high[0]=m;int u=start,flow=inf,ans=0;while(dis[start]<m){while(1){bool flag=false;for(int j=head[u];j!=-1;j=edge[j].nxet){int i=edge[j].adj;if(edge[j].w>0&&dis[u]==dis[i]+1){flow=MIN(flow,edge[j].w);pre[i]=j;u=i;if(i==m) // 等于汇点。{ans+=flow;while(i!=start){u=pre[i];edge[u].w-=flow;edge[edge[u].re].w+=flow;i=edge[edge[u].re].adj;}u=start;flow=inf;}flag=true;break;}}if(!flag) break;}int Min=m;for(int j=head[u];j!=-1;j=edge[j].nxet) //找由该点出发的标号最小值。if(edge[j].w>0&&dis[edge[j].adj]<Min)Min=dis[edge[j].adj];--high[dis[u]];if(high[dis[u]]==0) break;dis[u]=Min+1;high[dis[u]]++;if(u!=start) u=edge[edge[pre[u]].re].adj;}return ans;}int main(){//freopen("Input.txt","r",stdin);int n,m,ncase,a;scanf("%d",&ncase);while(ncase--){scanf("%d%d",&n,&m);top=-1;int sum1=0,sum2=0;memset(head,-1,sizeof(head));for(int i=2;i<=n+1;i++){scanf("%d",&a);init(1,i,a);sum1+=a;}for(int i=1;i<=m;i++){scanf("%d",&a);init(n+1+i,n+m+2,a);sum2+=a;for(int j=2;j<=n+1;j++)init(j,n+1+i,1);}//printf("case %d:\n",yy++);if(sum1!=sum2) {printf("Terrible\n");continue;}start=1;int tt=sap(n+m+2);if(tt!=sum1) printf("Terrible\n");else printf("Not Sure\n");}return 0;}
相关文章推荐
- NYOJ 489-哭泣天使:最大流
- NYOJ 489-哭泣天使:最大流
- nyoj 489 哭泣天使 网络流 最大流 IASP
- NYOJ 489 哭泣天使(网络流)
- 《网络流学习笔记04 && NYOJ 489 哭泣天使(建边,超级源点和汇点)》
- nyoj 489 哭泣天使
- NYOJ 489 哭泣天使 最大流
- (NYoj 489)哭泣天使 -- 网络最大流,关于网格的建图方法,Dinic
- NYIST 489 哭泣天使
- nyoj 哭泣天使 最大流
- NYOJ 489 最大流 Dinic 算法
- nyoj-489-dinic/建图
- nyoj 489
- NYOJ-57-6174问题-2013年6月29日11:28:02
- nyoj 915 +-字符串(贪心)
- NYOJ-51 管闲事的小明
- 最短路变形 nyoj1248、poj1797 dijkstra+堆优化
- NYOJ-241-字母统计-2013年7月26日20:29:37
- nyoj水池数目
- NYOJ-求逆序数 ----------------待解决,WA