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 orangelegend at 2008-09-24 21:21:14 on Problem 2244 and last updated at 2008-09-24 21:44:50
In Reply To:超时和不超时 Posted by:orangelegend at 2008-09-24 21:20:24
#include <stdio.h>
#include <string.h>
#include<windows.h>

struct city
{
	int prior,flag,next;
}c[250];

void initcity(int n)
{
	int i;
	for (i = 0; i < n; i++)
	{
		c[i].prior = i - 1;
		c[i].flag = 0;
		c[i].next = i + 1;
	}
	c[0].prior = n - 1;
	c[n - 1].next = 0;
}

void visitcity(int n)
{
	c[n].flag = 1;
	c[c[n].prior].next = c[n].next;
	c[c[n].next].prior = c[n].prior;
}

int main()
{
	int m,i,n,j,count;
	long t1,t2;
	freopen("d:\\test.txt","r",stdin);
	t1 = GetTickCount();
	while (scanf("%d",&n) != EOF && n != 0)
	{		
		m = 1;
		while (1)
		{
			initcity(n);
			i = count = 0;	
			while (count != n)
			{
				visitcity(i);
				count++;
				j = 0;
				while(j < m)
				{
					i = c[i].next;
					j++;
				}
				if (i == 1 && count < n)
					break;
			}
			if (count == n - 1)
				break;
			m++;
		}
		printf("%d\n",m);
	}
	t2 = GetTickCount();
	printf("time cost %ld\n",t2 - t1);
	return 0;
}

125ms

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