比赛 20150423 评测结果 AWWWWWWWWWWWWWW
题目名称 马拉松2 最终得分 6
用户昵称 fyb 运行时间 0.329 s
代码语言 C++ 内存使用 1.25 MiB
提交时间 2015-04-23 10:33:52
显示代码纯文本
#include <stdio.h>

#define NMAX 500
#define KMAX NMAX
#define VERY_LARGE 10000000

int y[NMAX+1],x[NMAX+1];
int d[NMAX+1][KMAX+1];

int ab(int a){return a<0?-a:a;}
int dis(int ia,int ib){return ab(y[ia]-y[ib])+ab(x[ia]-x[ib]);}

int main(){
	int n,k;
	int tmp,mi;
	int i,j,a;

	freopen("marathonb.in","r",stdin);
	freopen("marathonb.out","w",stdout);

	scanf("%d%d",&n,&k);
	getchar();
	for(i=1;i<=n;i++){
		scanf("%d%d",x+i,y+i);
		getchar();
	}

	for(i=2;i<=n;i++)
		for(j=0;j<=k;j++){
			mi=VERY_LARGE;
			tmp=0;
			for(a=0;a<=k&&a<i-1;a++){
				tmp=d[i-a-1][j-a]+dis(i-a-1,i);
				if(tmp<mi)mi=tmp;
			}
			d[i][j]=mi;
		}

	printf("%d",d[n][k]);
	return 0;
}