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

不能ac的O(1)代码。。。。

Posted by Qinz at 2008-10-19 22:29:45
In Reply To:这题重点是算法复杂度,应该没有什么特殊数据,建议您暴力生成数据来验证一下吧 Posted by:liangzhirong at 2008-10-19 20:18:49
#include<stdio.h>
int main()
{
	long long n,m,k;
	scanf("%d",&m);
	while(m)
	{
		scanf("%lld %lld",&n,&k);
		if (k<=n/2+1) printf("1/%d\n",n-k+1);
		else if (k<=5*n/6+1&&n%2==0)
		{
			if ((k-n/2)%2==0) printf("2/%d\n",n-(k-n/2-1));
			else printf("1/%d\n",n/2-(k-n/2-1)/2);
		}
		else if (k<=5*n/6+1&&n%2==1)
		{
			if ((k-n/2)%2==0) printf("2/%d\n",n-(k-n/2-2));
			else printf("1/%d\n",n/2-(k-n/2-2)/2);
		}
		else if (n%6==1)
		{
			if ((k-5*n/6)%4==2) printf("2/%d\n",2*n/3-(k-5*n/6-2)/4*2+1);
			else if ((k-5*n/6)%4==3) printf("3/%d\n",n-(k-5*n/6-3)/4*3);
			else if ((k-5*n/6)%4==0) printf("1/%d\n",n/3-(k-5*n/6)/4+1);
			else printf("3/%d\n",n-(k-5*n/6-1)/4*3+1);
		}
		else if (n%6==2)
		{
			if ((k-5*n/6)%4==3) printf("2/%d\n",2*n/3-(k-5*n/6-3)/4*2);
			else if ((k-5*n/6)%4==0) printf("3/%d\n",n-(k-5*n/6)/4*3+2);
			else if ((k-5*n/6)%4==1) printf("1/%d\n",n/3-(k-5*n/6-1)/4+1);
			else printf("3/%d\n",n-(k-5*n/6-2)/4*3);
		}
		else if (n%6==3)
		{
			if ((k-5*n/6)%4==0) printf("2/%d\n",2*n/3-(k-5*n/6)/4*2+1);
			else if ((k-5*n/6)%4==1) printf("3/%d\n",n-(k-5*n/6-1)/4*3+1);
			else if ((k-5*n/6)%4==2) printf("1/%d\n",n/3-(k-5*n/6-2)/4);
			else printf("3/%d\n",n-(k-5*n/6-3)/4*3-1);
		}
		else if (n%6==4)
		{
			if ((k-5*n/6)%4==1) printf("2/%d\n",2*n/3-(k-5*n/6-1)/4*2+1);
			else if ((k-5*n/6)%4==2) printf("3/%d\n",n-(k-5*n/6-2)/4*3);
			else if ((k-5*n/6)%4==3) printf("1/%d\n",n/3-(k-5*n/6-3)/4);
			else printf("3/%d\n",n-(k-5*n/6-4)/4*3-2);
		}
		else if (n%6==5)
		{
			if ((k-5*n/6)%4==3) printf("2/%d\n",2*n/3-(k-5*n/6-3)/4*2);
			else if ((k-5*n/6)%4==0) printf("3/%d\n",n-(k-5*n/6)/4*3+2);
			else if ((k-5*n/6)%4==1) printf("1/%d\n",n/3-(k-5*n/6-1)/4+1);
			else printf("3/%d\n",n-(k-5*n/6-2)/4*3);
		}
		else
		{
			if ((k-5*n/6)%4==3) printf("2/%d\n",2*n/3-(k-5*n/6-3)/4*2-1);
			else if ((k-5*n/6)%4==0) printf("3/%d\n",n-(k-5*n/6)/4*3+1);
			else if ((k-5*n/6)%4==1) printf("1/%d\n",n/3-(k-5*n/6-1)/4);
			else printf("3/%d\n",n-(k-5*n/6-2)/4*3-1);
		}
		m--;
	}
	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