| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:为什么超时。。小菜鸟求解释。。。(附代码)In Reply To:为什么超时。。小菜鸟求解释。。。(附代码) Posted by:athenaa at 2011-03-02 12:06:37 > #include<stdio.h>
> #include<algorithm>
> #include<vector>
> #include<queue>
> #define inf 99999999
>
> using namespace std;
>
> int map[1005][1005],pre[1005];
> vector<int>g[1005];
> int n,m,S,T;
>
> void build(int mid)
> {
> int i,j;
> S=0;
> T=n+m+1;
> memset(map,0,sizeof(map));
> for(i=1;i<=n;i++)
> map[S][i]=1;
> for(i=1;i<=n;i++)
> for(j=0;j<g[i].size();j++)
> map[i][g[i][j]+n+1]=1;
> for(i=n+1;i<=n+m;i++)
> map[i][T]=mid;
> }
>
> bool bfs()
> {
> int i,now;
> memset(pre,-1,sizeof(pre));
> queue<int>q;
> q.push(S);
> while(!q.empty())
> {
> now=q.front();
> q.pop();
> for(i=0;i<=T;i++)
> {
> if(pre[i]==-1&&map[now][i]>0)
> {
> pre[i]=now;
> if(i==T)
> return true;
> q.push(i);
> }
> }
> }
> return false;
> }
>
> int EK()
> {
> int i,flow=0,min;
> while(bfs())
> {
> min=inf;
> for(i=T;i!=S;i=pre[i])
> if(map[pre[i]][i]<min)
> min=map[pre[i]][i];
> // printf("%d\n",min);
> for(i=T;i!=S;i=pre[i])
> {
> map[pre[i]][i]=map[pre[i]][i]-min;
> map[i][pre[i]]=map[i][pre[i]]+min;
> }
> flow=flow+min;
> }
> return flow;
> }
>
> void init()
> {
> int i;
> for(i=0;i<1005;i++)
> g[i].clear();
> }
>
> int main()
> {
> int i,j,left,right,mid;
> char str[100],c;
> while(scanf("%d%d",&n,&m)!=EOF)
> {
> if(n==0&&m==0)
> break;
> init();
> for(i=1;i<=n;i++)
> {
> scanf("%s",str);
> while(1)
> {
> scanf("%d",&j);
> g[i].push_back(j);
> scanf("%c",&c);
> if(c=='\n')
> break;
> }
> }
> left=0;
> right=n;
> while(left<=right)
> {
> mid=(left+right)>>1;
> build(mid);
> int temp=EK();
> printf("%d %d\n",mid,temp);
> if(temp==n)
> right=mid-1;
> else
> left=mid+1;
> }
> printf("%d\n",left);
> }
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator