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 anonym11 at 2004-08-24 15:16:31 on Problem 1208
我的代码如下,display()错在哪儿了?
#include<iostream>
#include<cstring>
using namespace std;

int st[26][26]= {0};
int x[26];
int y[26];
int n;

inline void back(int a)
{
	int i,p,c = x[a];
	for(i = y[a]+1 ;p = st[c][i];i ++)
	{	x[p] = p;y[p] = 1;st[c][i] = 0;st[p][1] = p;	}
}
void mvov(int a,int b)
{
	back(a);
	st[x[a]][y[a]] = 0;
	for(int i = y[b] ;st[x[b]][i];i ++);
	x[a] = x[b];y[a] = i;	st[x[a]][i] = a;
}
void mvon(int a,int b)
{
	back(b);
	mvov(a,b);
}
void plov(int a,int b)
{
	int i,c = x[a],d = x[b],p,h;
	for(h = y[b];st[x[b]][h];h ++);
	for(i = y[a];p = st[c][i] ;i ++)
	{
		st[c][i] = 0;
		x[p] = d;y[p] = h++;
		st[x[b]][h-1] = p;
	}
}
void plon(int a,int b)
{
	back(b);
	plov(a,b);
}
void display()
{
	int i,j;
	for(i = 1;i <= n;i ++)
	{
		printf(" %d: ",i-1);
		if(!st[i][1])
			;
		else
			for(j = 1;st[i][j];j ++)
				printf(" %d",(st[i][j]-1));
			cout << endl;
	}
}

int main()
{
	int a,b,i;
	void (*f[4])(int,int);
	char s[10],t[10];
	scanf("%d",&n);
	for( i = 1;i <= n;i ++)
	{
		st[i][1] = i;x[i] = i;	y[i] = 1;
	}
	f[0] = mvon;f[1] = mvov;f[2] = plon;f[3] = plov;
	scanf("%s",s);
	while(s[0] != 'q')
	{
		scanf("%d%s%d",&a,t,&b);
		a++;b++;
		if(x[a] != x[b]) 
			f[2 * strcmp(s,"move") + strcmp(t,"onto")](a,b);
		scanf("%s",s);
	}
	display();
	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