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

这代码错哪儿了大家来看看:

Posted by 123454321 at 2007-07-20 13:54:39 on Problem 3272
#include <iostream>
#include <vector>
#include <cstdio>
#include <string>
using namespace std;
#define MAXN 5005
bool in[MAXN];
vector<int> mp[MAXN];
int opt[MAXN];
int tt[MAXN];
int n,m;

int go(int sta)
{
    if(!in[sta]) { opt[sta]=1; return 1;}
	if(opt[sta]!=-1) return opt[sta];
	register int i;
	int tmpsum=0;
	int len=mp[sta].size();
	for(i=0;i<len;i++)
	{
		tmpsum+=go(mp[sta][i]);
	}
	opt[sta]=tmpsum;
	return tmpsum;
}

int main()
{
	register int i;
	int x,y;
	memset(opt,-1,sizeof(opt));
	scanf("%d%d",&n,&m);//n nodes ,m edges
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		mp[y].push_back(x);
		in[y]=true;
	}
	int sum=0;
	go(n);
	int max=0;
	for(i=0;i<mp[n].size();i++)
	{
		if(max<opt[mp[n][i]]) max=opt[mp[n][i]];
	}
	int cnt=0;
	for(i=0;i<mp[n].size();i++)
	{
		if(max==opt[mp[n][i]]) 
			cnt++;
	}
	if(cnt>1) max=0;
	printf("%d\n",max);
	
	return 0;
}
/*
5 4
1 3 2 3 3 5 4 5 =2

4 5
1 2 2 3 2 3 3 4 3 4 =0

5 4
1 2 2 5 3 4 4 5 =0

3 3
1 2 2 3 2 3 =0

6 5
1 3 2 3 3 4 4 6 5 6 =2

3 2
1 3 2 3 =0

5 6
1 3 2 3 2 4 4 5 3 5 3 5 =0

2 1 
1 2 =1


5 5 
1 3 3 5 2 3 2 4 4 5 =2

4 4 
1 2 2 3 2 3 3 4 =2
这些数据测地都对呀
*/

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