poj 1928 The Peanuts

来源:互联网 发布:数据库系统实现 mobi 编辑:程序博客网 时间:2024/04/30 13:51
//照着地图取花生,每次都是取最大的花生数,在限定的步数内,可以取到最多的花生数!用贪心就可以! #include "cstdio"#include "iostream"#include "math.h"using namespace std;int map[60][60];int main(){    int tc, m, n, k, i, j, totaltime, curi, curj, x, y, max, sum;    scanf("%d", &tc);    while (tc--)    {          scanf("%d%d%d", &m, &n, &k);          totaltime = 0;          for (i = 1; i <= m; i++)             for (j = 1; j <= n; j++)                 scanf("%d", &map[i][j]);                    totaltime = 0, curi = 0, curj = 0, sum = 0;          while (1)          {              max = 0;              x = curi;              y = curj;              for (i = 1; i <= m; i++)                 for (j = 1; j <= n; j++)                 {                     if (max < map[i][j])                     {                         max = map[i][j];                         curi = i;                         curj = j;                     }                 }              if (x == 0)                 y = curj;              if (totaltime + abs((int)(curi-x)) + abs((int)(curj-y)) + 1 + curi <= k)              {                  sum += max;                  totaltime += abs(int(curi - x)) + abs(int(curj-y)) + 1;                  map[curi][curj] = -1;                  x = curi;                  y = curj;              }              else              {                  cout << sum << endl;                  break;              }          }    }        system("pause");}