Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

fxxking TLE help me

Posted by VictorAn at 2014-07-22 16:44:51 on Problem 2125
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
#define R 222
#define INF 1010101010
int A[R],B[R];
int N,M;
int cap[R][R];
int ck[R];
int flow(int x, int cf, int e) {
	if (x == e) return cf;
	if (ck[x]) return 0;
	ck[x] = true;
	for (int y = 0; y <= e ; y++) if (cap[x][y]) {
		int f = flow(y, min(cf, cap[x][y]), e);
		if (f) {
			cap[x][y] -= f;
			cap[y][x] += f;
			return f;
		}
	}
	return 0;
}
int main()
{
	cin >> N >> M;

	int S =0,E=N+N+1;
	int a,b;
	for(int i=1;i<=N;i++){
		cin >> a;
		cap[i+N][E]=a;
	}
	for(int i=1;i<=N;i++){
		cin >> a;
		cap[S][i]=a;
	}
	for(int i=1;i<=M;i++){
		cin >> a >> b;
		cap[a][b+N] = INF;
	}
	int ans = 0;
	while(1){
		memset(ck,0,sizeof(ck));
		int f =flow(S,INF,E);
		if(!f) break;
		ans += f;
	}
	int cnt =0;
	for(int i=1;i<=N;i++){
		if(!ck[i]) cnt++;
		if(ck[i+N]) cnt++;
	}
	cout << ans << endl << cnt << endl;
	
	for(int i=1;i<=N;i++){
		if(!ck[i]) cout << i << " -" << endl;
		if(ck[i+N]) cout << i << " +" << endl;
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator