P1086 花生采摘

来源:互联网 发布:linux切换计算机目录 编辑:程序博客网 时间:2024/04/25 18:17

题目描述

在一块矩形的花生田中,找到一株最多的花生,再找出剩下的花生中最多的一颗,依此类推,路距离田地距离为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.
1 0
原创粉丝点击