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 chenson at 2005-07-23 17:32:02 on Problem 1026
#include <stdio.h>
#include <string.h>
#include <memory.h>

char str[210],shift[210],temp1[210],temp2[210];
int n,k,t,tt,m;

void getTimes()
{
	char flag[210];
	int time;
	int i,j,c,kk,t,tt;
	for(i=0;i<=n;i++) flag[i]=0;
	t=0;
	m=0;
	for(i=1;i<=n;i++)
	{
		if(flag[i]==0)
		{
		c=1;
		flag[i]=1;
		j=shift[i];
		while(flag[j]==0)
		{
			c++;
			flag[j]=1;
			j=shift[j];
		}
		time=c;
		c=k%time;
		for(j=0;j<time;j++)
		{
			kk=i;
			t=j;
			while(t){kk=shift[kk];--t;}
			tt=kk;
			t=c;
			while(t){kk=shift[kk];--t;}
			temp2[kk]=temp1[tt];
		}
		}
	}

}

int main()
{
	int i;
	char ch;
	scanf("%d",&n);
    while(n!=0)
	{
		for(i=1;i<=n;i++) scanf("%d",shift+i);
		scanf("%d",&k);
		ch=getchar();
		while(k!=0)
		{
			gets(str);
			for(i=strlen(str);i<=n;i++) str[i]=' ';
			for(i=1;i<=n;i++) temp1[i]=i-1;
			getTimes();
			for(i=0;i<n;i++) printf("%c",str[temp2[i+1]]);
			printf("\n");
			scanf("%d",&k);
			ch=getchar();
		}
		scanf("%d",&n);
		if(n) printf("\n");
	}
	return 1;
}

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