我在查了
by 小杨小小杨 @ 2021-04-13 20:11:44
给您看下我的代码吧。
有借鉴题解。
```cpp
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
typedef struct NODE {
int x, y;
int sum; //花生个数
};
NODE a[4005];
const int N = 30;
int mp[N][N];
int n, m, k;
int tm;
int fx, fy, xx, yy;
int pn;
int ans;
bool cmp(NODE a, NODE b)
{
return a.sum > b.sum;
}
int main(void) {
int tmp;
scanf("%d%d%d", &n, &m, &k);
for (register int i = 1; i <= n; i++)
{
for (register int l = 1; l <= m; l++)
{
scanf("%d", &mp[i][l]);
if (mp[i][l] > 0)
{
a[++pn].sum = mp[i][l];
a[pn].x = i;
a[pn].y = l;
}
}
}
sort(a + 1, a + pn + 1, cmp);
fx = 1, fy = a[1].y;
k--;
for (int i = 1; i <= pn; i++)
{
tm = 0;
xx = a[i].x;
yy = a[i].y;
tm = abs(fx - xx) + abs(fy - yy);
k--;
k -= tm;
if (k >= xx)
{
ans += mp[xx][yy];
fx = xx;
fy = yy;
}
else
{
printf("%d", ans);
return 0;
}
}
printf("%d", ans);
return 0;
}
```
[![cyZOHJ.png](https://z3.ax1x.com/2021/04/13/cyZOHJ.png)](https://imgtu.com/i/cyZOHJ)
我有时间可能会帮你查一下错。
by XiaoQuQu @ 2021-04-13 20:23:41
额这,我一看就看出来了。在您的代码里,这部分出了点小问题。
[![cyeRxK.png](https://z3.ax1x.com/2021/04/13/cyeRxK.png)](https://imgtu.com/i/cyeRxK)
您用的是k++ 。
在``cin>>mp[k++]``时,您的``k``为``0``,而到了``mp[k].x=i,mp[k].y=j``时,您的``k``更新为``1``,这就错了。
by XiaoQuQu @ 2021-04-13 20:29:28
~~下线了一下发现有人回答了……~~
by 小杨小小杨 @ 2021-04-13 20:32:25