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 1196494730 at 2018-07-30 16:08:00 on Problem 1661
#include<stdio.h>

struct platform
{
	int platform_l;
	int platform_r;
	int platform_h;
};
int n,x,y,max;
struct platform p[1001];
int rem[1002][3];
int mintwo(int a,int b)
{
	if(a>b)
		return b;
	return a;
}

int existence(int num,int local)
{
	int i;
	for(i=num+1;i<=n;i++)
	{
		if( (p[i].platform_l<=local&&p[i].platform_r>=local) && p[num].platform_h-p[i].platform_h<=max )
		{
			return i;
		}
	}
	return 0;
}

int mintime(int num,int side)
{
	int x_local;
	int z,x,y;
	int name;
	if(side==1)
		x_local=p[num].platform_l;
	if(side==2)
		x_local=p[num].platform_r;
	name=existence(num,x_local);
	if(rem[num][side]!=-1)
		return rem[num][side];
	if(name==0)
	{
		if(p[num].platform_h>max)
			rem[num][side]=1000000;
		else
			rem[num][side]=p[num].platform_h;
		
		return rem[num][side];
	}
	else
	{
		x=mintime(name,1)+(p[num].platform_h-p[name].platform_h)+(x_local-p[name].platform_l);
		y=mintime(name,2)+(p[num].platform_h-p[name].platform_h)+(p[name].platform_r-x_local);
		rem[num][side]=mintwo(x,y);
		return rem[num][side];
	}
}

void main()
{
	int i,j;
	int t;
	struct platform temp;
	
	scanf("%d",&t);
	while(t)
	{
		scanf("%d%d%d%d",&n,&x,&y,&max);
		p[0].platform_l=x;
		p[0].platform_r=x;
		p[0].platform_h=y;
		for(i=1;i<=n;i++)
		{
			scanf("%d%d%d",&p[i].platform_l,&p[i].platform_r,&p[i].platform_h);
		}
		
		//排序
		for(i=1;i<=n-1;i++)
		{
			for(j=1;j<=n-i;j++)
			{
				if(p[j].platform_h<p[j+1].platform_h)
				{
					temp=p[j];
					p[j]=p[j+1];
					p[j+1]=temp;
				}
			}
		}
			
		for(i=0;i<1002;i++)
		{
			for(j=0;j<3;j++)
			{
				rem[i][j]=-1;
			}
		}

		 //左是一右是二
		printf("%d\n",mintime(0,1)); 
		t--;
	}
}

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