首页 > 学院 > 开发设计 > 正文

P1086 花生采摘

2019-11-14 11:38:26
字体:
来源:转载
供稿:网友

题目描述

在一块矩形的花生田中,找到一株最多的花生,再找出剩下的花生中最多的一颗,依此类推,路距离田地距离为1。

样例输入

6 7 210 0 0 0 0 0 00 0 0 0 13 0 00 0 0 0 0 0 70 12 0 0 0 0 00 0 0 9 0 0 00 0 0 0 0 0 0

样例输出

37

思路

O(nm)先找到最多的一株花生,如果时间够回到起点,就再找到剩下的最多的花生,从一株花生到另一株花生花费的时间是abs(x1-x)+abs(y1-y)+1。var t,m,n,k,s,i,j,x1,y1,x,y,ans:longint; a:array[1..100,1..100] of longint;begin readln(n,m,k); for i:=1 to n do for j:=1 to m do begin read(a[i,j]); if a[i,j]>s then begin s:=a[i,j];x:=i;y:=j;end; end; k:=k-x-2; while k-x+1>=0 do begin a[x,y]:=0;ans:=ans+s; s:=0; for i:=1 to n do for j:=1 to m do if a[i,j]>s then begin s:=a[i,j];x1:=i;y1:=j;end; k:=k-1-abs(x-x1)-abs(y-y1); x:=x1; y:=y1; end; writeln(ans);end.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表